Вы можете изменить домен cookie только на клиенте или когда он установлен на сервере . После того, как cookie был установлен, путь и информация о домене для него существуют только на клиенте. Таким образом, существующие куки не могут изменять свой домен на сервере, потому что эта информация не отправляется с клиента на сервер.
Например, если у вас есть файл cookie, который выглядит так на вашем локальном компьютере:
MYCOOKIE:123, domain:www.test.com, path:/
Ваш сервер будет получать только:
MYCOOKIE:123
на сервере. Почему не отправлен путь и домен? Поскольку браузер хранит эту информацию на клиенте и не отправляет ее вместе, поскольку он отправляет этот файл cookie на ваш сервер , если , страница находится по адресу www.test.com * 1015. * и по пути / .
Поскольку это ваш сервер, вы сможете изменить свой код, который создает новые куки. Если по какой-то причине вы почувствовали, что вам нужно сделать это вне вашего кода, вы можете сделать это с помощью чего-то вроде следующего, но вам нужно будет точно посмотреть, как ваш cookie записывается в заголовок, чтобы точно соответствовать ему. Ниже приводится непроверенное предположение о работоспособном решении для этого с использованием Apache mod_headers
:
<IfModule mod_headers.c>
Header edit Set-Cookie (.*)(domain=.company.com;)(.*) $1 domain=app.company.com; $2
</IfModule>
Вы также можете использовать mod_headers
для изменения файла cookie, полученного от клиента, например, при необходимости:
<IfModule mod_headers.c>
RequestHeader edit Cookie "OLD_COOKIE=([0-9a-zA-Z\-]*);" "NEW_COOKIE_NAME=$1;"
</IfModule>
Это переименует только те куки, которые вы получите в запросе.