Мой веб-хостинг добавляет? 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.

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

Ваш «хост» не вызывает проблемы, 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, либо полностью завершите сеансы.