Я использую переменную сеанса для хранения данных входа. Локально все работает гладко, он хорошо вписывается и не выходит изнутри между страницами.
Но когда я помещаю те же файлы на сервер, по какой-то причине я выхожу из системы. Я уже нашел этот пост и попытался использовать следующий код, чтобы предотвратить кеширование динамических страниц:
header("Cache-Control: no-cache, must-revalidate"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
Хотя это, похоже, не работает. Есть ли другие возможные решения этой проблемы?
Изменить: обратите внимание, что session_start()
находится на каждой странице.
Редактирование 2: Я провел небольшое исследование, и некоторые мои ссылки ссылаются на mysite.com
когда на mysite.com
. Переход на эту новую страницу означает, что параметры $_SESSION[]
не установлены, и при возврате на предыдущую страницу с помощью кнопки «Назад» вы можете увидеть, что $_SESSION[]
по-прежнему установлен.
Сеансы используют файлы cookie, поэтому при изменении доменов (www.site.com на сайт.com) эти файлы cookie не передаются.
Настройте свой веб-сервер, чтобы иметь один канонический URL-адрес, и перенаправлять всех на это (например, стандартизировать на сайте.com, перенаправить http://www.site.com на сайт.com).
Вот как я обрабатываю перенаправления в apache:
ServerAlias www.site.com my.site.com site.net www.site.net sites.com www.sites.com site.com RewriteEngine On RewriteCond %{SERVER_NAME} !=site.com RewriteRule ^(.*) https://site.com/$1 [R=301]
Я предпочитаю site.com через http://www.site.com, если вы не делаете что-то другое на двух из них, заставляя людей вводить лишние четыре символа, кажется бесполезным. Мое (хромое) понимание SEO заключается в том, что вам лучше выбрать один, чем дублировать контент на двух URL-адресах (site.com/stuff и http://www.site.com/stuff)