Иногда требуется распространить авторизацию на все поддомены, включая основной домен. Другими словами, необходимо сделать один файл сессии для домена и его поддоменов.
Для этого необходимо прописать в файле htaccess следующее:
<IfModule mod_php7.c>
php_value session.cookie_domain ".domain.com"
</IfModule>
Вместо "7" поставьте свою версию php. Вместо ".domain.com" свой домен. Обратите внимание на точку в начале ".domain.com".
После установки можно проверить правильность, подглянув в phpinfo(). Там будет строка:
Теперь удостоверимся в правильности распространения сессии на все поддомены. Для этого сначала откроем папку, где хранятся файлы сессии php. Путь к ней можно найти в том же phpinfo(), под названием "session.save_path". Удалим из этой папки все файлы сессий (это нестрашно, если проект находится в разработке, но на активном проекте это причинит неудобства пользователям). Теперь открываем анонимное окно браузера. В нём вкладки на несколько разных поддоменов. Если при открытии двух и более поддоменов будет создан только один сессионный файл, то всё прошло хорошо:
Если от открытия двух поддоменов в браузере создалось два файла сессии, то где-то была допущена ошибка. Если файл один, то всё прошло успешно, данные сессии берутся из одного файла.
Не забудьте, что в CMS сессия может запоминаться в куки. Поэтому для активации распределённой на поддомены сессии, необходимо полностью очистить куки сайта в браузере.
А есть такой же вариант, есть на поддомене установлена другая версия PHP?
Если установлено несколько версий PHP, то стоит проверить, что их сессионные папки совпадают. Тогда всё заработает без проблем, ведь по сути, данные в файлы сессии пишет система управления сайтом. И если она пишет одно в сессию вне зависимости от версии PHP, то можно будет без проблем загрузить данные из файла и прочитать их.
К сожалению, подобного опыта не имею, поэтому не могу утверждать на 100%.