Сессия не поддерживается между mysite.com и www.example.com - PullRequest
3 голосов
/ 20 октября 2010

Я использую сеанс для поддержания некоторых переменных между различными страницами на моем сайте. Хотя он работает нормально, когда я перехожу с www.example.com/a на www.example.com/b, переменные сеанса теряются, если я перехожу с example.com/a на www.example.com/b

.

Любая идея, как я могу убедиться, что сеанс поддерживается независимо от www или нет www?

Веб-сайт добавляет www при переходе на разные страницы, но страницы доступны и без этого. Поэтому, если кто-то вручную вводит адрес и пропускает эту часть, а затем переходит на страницу b (нажав ссылку или отправив форму), переменные сеанса теряются.

Ответы [ 3 ]

5 голосов
/ 20 октября 2010

Разумный способ сделать это - перенаправить example.com на www.example.com;тем самым вы убедитесь, что все ваши посетители находятся в www.example.com, и сканеры не будут индексировать две страницы с одинаковым контентом.

Вы делаете это, отправляя 301: Moved Permanently пользователям, обращающимся к example.com (предполагая, что вы используете apache, вы должны добавить это к вашему .htaccess):

Redirect 301 http://example.com/ http://www.example.com/

Вторая версия:

Redirect 301 http://example.com/(.*) http://www.example.com/$1

Извините, это правильно:

Options +FollowSymlinks
RewriteEngine on

rewritecond %{http_host} ^example.com [nc]
rewriterule ^(.*)$ http://www.example.com/$1 [r=301,nc]

взято отсюда http://www.webconfs.com/how-to-redirect-a-webpage.php

2 голосов
/ 20 октября 2010

необходимо убедиться, что для файла cookie установлено значение .example.com, а не www.example.com с использованием session_set_cookie_params, в частности, параметр 3 - домен в документации

0 голосов
/ 20 октября 2010

Идентификатор сеанса хранится в файле cookie.Файлы cookie не переносятся с субдомена на субдомен (например, с www.somesite.com на somesite.com).Вы можете изменить параметры cookie с помощью session_set_cookie_params () или php.ini

...