Мой веб-хост добавляет?PHPSESSID=fgh2h45... до конца URL-адреса


Я использую iPage.com хозяин. Чтобы использовать сеансы PHP на своем хосте, мне нужно добавить session_save_path('/home/users/web/.../cgi-bin/tmp'); в начале каждой страницы (только в моем случае index.php потому что все идет ко дну index.php первый).

Теперь они автоматически добавляют идентификатор сеанса в конец каждого запрошенного URL-адреса следующим образом: website.com/movies/details/?PHPSESSID=4s54kjhdl ...

Я думаю, что это вызывает проблемы и может повлиять на индексацию Google и SEO..

Как это предотвратить?

Author: Jonathan, 2010-07-07

3 answers

Ваш "хост" не вызывает проблемы, PHP добавляет эти данные. В частности, PHP настроен на добавление переменной PHPSESSID к URL-адресу, чтобы позволить PHP отслеживать сеанс. Можно изменить соответствующую настройку с помощью ini_set перед вызовом session_start или более постоянно, обновив файл php.ini (хотя, поскольку вы находитесь на хостинге, этот последний вариант, вероятно, отсутствует). Это список доступных настроек среды выполнения для сеансов в PHP.

Пока вы можете контролировать независимо от того, добавлено ли значение в конец ваших URL-адресов, оно необходимо для отслеживания сеансов. В качестве альтернативы вы можете настроить PHP на использование файлов cookie для отслеживания сеансов, но требование файлов cookie для отслеживания сеансов может привести к поломке вашего приложения для пользователей, которые отклоняют файлы cookie.

Короче говоря, вы можете управлять идентификатором сеанса, чтобы сделать его немного красивее (переименовав PHPSESSID во что-то более удобное или сделав значение менее загадочным), но если вы не хотите использовать файлы cookie для поддержания сеанса, вы застрял с этим "мусором" на вашем URL-адресе. Если вы используете только файлы cookie, некоторые пользователи могут не поддерживать сеанс.

Чтобы включить обработку сеансов на основе файлов cookie, вы можете выполнить следующее:

// stop PHP from automatically embedding PHPSESSID on local URLs
ini_set('session.use_trans_sid', false);

Или

// only use cookies (no url based sessions)
ini_set('session.use_only_cookies', true);
 6
Author: Mark Elliot, 2010-07-07 01:46:23

Если вы не можете изменить php.ini самостоятельно, вы можете сделать следующее:

ini_set('session.use_trans_sid',false);

Это приведет к тому, что PHP будет использовать обработку сеансов на основе файлов cookie, а не добавлять идентификатор сеанса к URL-адресу (что в любом случае может представлять угрозу безопасности).

 2
Author: Mike Sherov, 2010-07-07 01:11:50

Либо настройте его на использование сеансов на основе файлов cookie, либо полностью переключите сеансы.

 0
Author: Kalium, 2010-07-07 01:03:37