как избавиться от PHPSESSID?

1 23
T
На сайте с 20.03.2005
Offline
28
#21

Если нужно прибить сессии только для пауков, то можно сделать так:


$spider_name = '';
$user_agent = strtolower(getenv('HTTP_USER_AGENT'));
if ($user_agent != '') {
$spiders = file('spiders.txt');
for ($i=0, $n=sizeof($spiders); $i<$n; $i++) {
$spider = strtolower(trim($spiders[$i]));
if ($spider != '') {
if (ereg("$spider", $user_agent)) {
session_close();
break;
}
}
}
}

Поместить в хидер.пхп или другой скрипт, но до создания ссылок на страницах.

Файл spiders.txt такого содержания:


googlebot
Yandex
StackRambler
Uaportal
YahooBot
slurp/si
slurp@inktomi.com
robot
spider
crawl

Если нужно, могу поделиться полным файлом на 63 строки.

Pike
На сайте с 13.07.2004
Offline
79
#22

tmhptw

1. Это работа для strstr, а не для ereg

2. Сессию лучще не стартовать, а не закрывать

3 Имена ботов лучше хранить в массиве, а не в отдельном файле.

4 if ($spider != '') должно быть if(trim($spider))

free hosting (http://rahost.com)
T
На сайте с 20.03.2005
Offline
28
#23

Pike,

1. Это работа для strstr, а не для ereg

Принимается, но с оговорками на версию PHP ;)

2. Сессию лучще не стартовать, а не закрывать

На сколько я понял, сессию стартует сервер, а не скрипт. И если нет возможности убрать это в настройках сервера (со слов топикстартера), то прийдется это делать в скрипте.

3 Имена ботов лучше хранить в массиве, а не в отдельном файле.

А массив этот лучше где хранить? В главном скрипте или инклудить из отдельного файла?

4 if ($spider != '') должно быть if(trim($spider))

Это еще почему?

Тогда уж лучше

 if (strtolower(trim($spiders[$i])))

;)

Вообще привел упрощенный вариант, набросал побыстрому, постарался быть проще, чтоб можно было понять. Форум-то не программерский... ;)

Pike
На сайте с 13.07.2004
Offline
79
#24

never mind

AS
На сайте с 15.02.2004
Offline
113
#25

Вроде подредактировали мне код, теперь ботам поисковиков теперь не должны сессии отдаваться...

Как-бы это проверить, подскажите?

C
На сайте с 19.09.2001
Offline
120
#26

Если робот определяется по User-agent, а не по IP -- сделать запрос нескольких страниц со своего сайта с User-agent Яндекса, Рамблера и т.д.

С уважением, Владимир Чернышов. (не)?путевые заметки (http://chernyshov.kiev.ua/)
1 23

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