Php сессия не видит имя сервера и ServerAlias

Я работаю в Интранете, используя Wordpress и настройку в Apache (httpd-vhosts.conf), чтобы получить доступ к Интранету как intranet or intranet.domain.lcl как это:

Listen 80
<VirtualHost 10.241.9.147:80>
  DocumentRoot "C:/www/intranet"
  ServerName intranet.domain.lcl
  ServerAlias intranet
  <Directory "C:/www/intranet">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 10.240.9 10.241.9 
  </Directory>
</VirtualHost>

В настройках Wordpress я дал URL-адрес и адрес сайта WordPress как http://intranet.domain.lcl/wp

Проблема, которая у меня есть, заключается в том, что я использую сеанс PHP для входа пользователей, и я замечаю, что если:

  • пользователь вошел через intranet, он не вошел, если он идет intranet.domain.lcl
  • и наоборот, если пользователь вошел через intranet.domain.lcl, он не вошел, если он идет intranet

Я тестирую даже без моего скрипта, чтобы войти в систему через сеанс php и используя WordPress Logi естественным образом, но проблема остается той же.

Есть какие-нибудь подсказки?

Спасибо

1 ответ

Решение

Это восходит к междоменным куки. Если браузер находится на странице a, он будет только сохранять и отправлять куки для домена a, Сервер не может устанавливать файлы cookie для других доменов и не получает файлы cookie для других доменов из браузера. То же самое верно для домена b, задом наперед.

Два разных домена - это два разных домена. Даже если они содержат один и тот же контент, браузер этого не знает. Для браузера это два разных домена, и они не могут использовать один и тот же файл cookie для входа.

Другие вопросы по тегам