Мой веб-хостинг добавляет? PHPSESSID = fgh2h45 ... в конец URL - PullRequest
2 голосов
/ 07 июля 2010

Я использую хост 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 ]

6 голосов
/ 07 июля 2010

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

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

Короче говоря, вы можете управлять идентификатором сеанса, чтобы сделать его немного красивее (переименовав PHPSESSID во что-то более подходящее или сделав значение менее загадочным), но если вы не хотите использовать куки для поддержки сеанса, вы застряли с этот "мусор" на вашем 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);
2 голосов
/ 07 июля 2010

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

ini_set('session.use_trans_sid',false);

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

0 голосов
/ 07 июля 2010

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

...