Поисковые роботы и сессии в PHP

12 3
L
На сайте с 06.02.2011
Offline
78
2560

На сайте необходимо использовать сессии.

Для того чтобы поисковые роботы не получали в месте с адресом страницы PHPSESSID хочу просматривать HTTP_USER_AGENT и если там есть например yandex или google то сессию не запускать.

Просматривал HTTP_USER_AGENT и там везде есть слово bot (в разных вариантах) Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots) Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) Mozilla/5.0 (compatible; AhrefsBot/2.0; +http://ahrefs.com/robot/)

нужно ли создавать список ботов или можно просто смотреть есть ли слово bot и не запускать сессию???

LEOnidUKG
На сайте с 25.11.2006
Offline
1670
#1
Для того чтобы поисковые роботы не получали в месте с адресом страницы PHPSESSID

Эээ.... а не легче настройку сервера сделать?

http://kobzarev.com/programming/delete-sid-from-url.html

✅ Трастовых площадок под размещение статей и ссылок. Опыт 15 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Новый аналог AllSubbmitter https://getmanylinks.ru/getmanysubmits.html (Бесплатное демо)
Dreammaker
На сайте с 20.04.2006
Offline
564
#2

LEOnidUKG,

Ээээ, а не проще сессиями правильно пользоваться? :)

Что-то типа


<?php

if (isset($_REQUEST['PHPSESSID']))
session_start();
?>
LEOnidUKG
На сайте с 25.11.2006
Offline
1670
#3
Dreammaker:
LEOnidUKG,

Ээээ, а не проще сессиями правильно пользоваться? :)

Так помоему спрашивают:

с адресом страницы PHPSESSID

А чтобы сессия не стартовалась, то надо

if (!preg_match('@bot@',$_SERVER['HTTP_USER_AGENT'])) {

session_start();

}

kdv12
На сайте с 05.12.2011
Offline
52
#4
LEOnidUKG:
Так помоему спрашивают:


А чтобы сессия не стартовалась, то надо

if (!preg_match('@bot@',$_SERVER['HTTP_USER_AGENT'])) {
session_start();
}

preg_match не гуманно как-то. Лучше strpos() или strstr() :)

Разработка сайтов любой сложности на 1С-Битрикс. Бесплатные консультации.
LEOnidUKG
На сайте с 25.11.2006
Offline
1670
#5
kdv12:
preg_match не гуманно как-то. Лучше strpos() или strstr() :)

Всё гумманно. Давно уже забыл про кучу УГ функций, которые делают тоже самое, что и регулярка, только с обрезанными способностями.

L
На сайте с 06.02.2011
Offline
78
#6

Всем большое спасибо за ответы!!!

Уточню вопрос.

Все ли полезные боты имеют в HTTP_USER_AGENT слово bot.

Или нужно создавать список

yandex

google

mail

и т.д.

kdv12
На сайте с 05.12.2011
Offline
52
#7
lukamal:
Всем большое спасибо за ответы!!!
Уточню вопрос.
Все ли полезные боты имеют в HTTP_USER_AGENT слово bot.
Или нужно создавать список
yandex
google
mail
и т.д.

Смотря какие боты вы считаете полезными?

Dreammaker
На сайте с 20.04.2006
Offline
564
#8
LEOnidUKG:
Так помоему спрашивают:

тут как раз случай, когда спрашивают не то, что нужно :) или точнее почти то, что нужно.

Конечная более общая цель - сделать так чтобы сессия не стартовала для неавторизированных пользователей (а боты ими являются тоже). Другие же варианты - это попытка вырезать гланды через ... юзерагент ботов :)

p.s. Если же ТС хочет запускать сессии для всех подряд пользователей на всех подряд страницах - значит, что-то не то задумано. И возможно нужно услышать задачу и посоветовать что-то другое.

L
На сайте с 06.02.2011
Offline
78
#9

Вы же меня поняли!

Боты поисковых систем.

Например у yandexa их несколько.

Dreammaker
На сайте с 20.04.2006
Offline
564
#10

lukamal, объясните, пожалуйста, зачем вам нужно запускать сессию на всех страницах для неавторизованных пользователей? :) интернет-магазин?

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий