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 для входа.