Ответ 1
Браузеры являются главным виновником здесь, а не PHP. Они хранятся по доменам и не знают, что www
- особый случай; с их точки зрения, www.mydomain.com
и mydomain.com
являются разными строками и поэтому имеют разные политики безопасности. Однако вы можете что-то сделать.
При настройке файла cookie используйте .mydomain.com
(с ведущей точкой). Это покажет вашему браузеру пользователя доступ к cookie для mydomain.com
и всех поддоменов, включая www
. PHP setcookie имеет аргумент $domain
, но он пятый в списке, поэтому вам может потребоваться установить $expire
и $path
к их значениям по умолчанию, чтобы добраться до него.
setcookie('name', 'value', time()+3600, '/', '.mydomain.com');
Однако для согласованности вы можете рассмотреть возможность перенаправления всего веб-трафика на определенный домен, то есть отправить трафик mydomain.com
на www.mydomain.com
или наоборот. Мое смутное знание SEO (редактирование, если оно неверно) говорит мне, что оно полезно для того, чтобы не дублировать контент, и это избавляет вас от всех таких проблем с проверкой подлинности. Кроме того, если вы храните активы в субдомене, то наличие куки файлов там замедляет трафик за счет его транспортировки каждый раз, поэтому сохранение файлов cookie приложений только на www
позволяет вам ускорить скорость.
Вот учебник о том, как выполнить такую перенаправление в Apache.