Мой веб-хост добавляет?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..
Как это предотвратить?
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);
Если вы не можете изменить php.ini самостоятельно, вы можете сделать следующее:
ini_set('session.use_trans_sid',false);
Это приведет к тому, что PHP будет использовать обработку сеансов на основе файлов cookie, а не добавлять идентификатор сеанса к URL-адресу (что в любом случае может представлять угрозу безопасности).
Либо настройте его на использование сеансов на основе файлов cookie, либо полностью переключите сеансы.