Перенести домен cookie из домена без .mydomain.com с помощью PHP / Nginx

У меня есть веб-сайт, написанный на PHP и работающий на Nginx HTTP сервере. У меня есть файл cookie с именем «locale», который представляет локаль пользователя. В течение 6 месяцев я отправляю cookie следующим образом:

setCookie("locale", "fr", time() + 36000, "/");

Как домен без файлов cookie, я понимаю, что он доступен только на одном домене «www.mydomain.com».

Но теперь я хочу создать 2 поддомена новостей:

  1. m.mydomain.com (мобильная часть)
  2. secure.mydomain.com (безопасная версия)

Я вижу, что файл cookie «locale», установленный на www, недоступен m или защищен. Итак, теперь я отправляю печенье так:

setCookie("locale", "fr", time() + 36000, "/", ".mydomain.com");

Да, мое печенье теперь доступно везде! Но так как у меня есть некоторые пользователи, которые уже просмотрели мой веб-сайт, у них есть домен без cookie + новый, их браузер отправляет мне оба куки, но PHP дает мне первый. В результате никто не может изменить локаль.

Вопрос заключается в следующем: как я могу перейти с этого домена с меньшим количеством файлов cookie на указанный cookie домена? Без изменения имени куки.

1

Решение

Первый файл cookie, который вы установили без домена, по умолчанию — www.mydomain.com, и, поскольку он более конкретен, чем «.mydomain.com», он выбирает исходный файл cookie. Прочитайте принятый ответ здесь.

Как получить домен определенного куки?

0

Другие решения

В заключение я добавлю это в файл index.php в течение 1 недели:

setCookie('locale', null, time() - 5000, '/');

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

setCookie('locale', 'fr', time() + 36000, '/', '.mydomain.com');
0

По вопросам рекламы [email protected]