Вы можете изменить домен файла cookie только на клиенте или когда он устанавливается на сервере. После установки файла cookie информация о пути и домене для него существует только на клиенте. Таким образом, существующие файлы cookie не могут изменить свой домен на сервере, потому что эта информация не отправляется от клиента к серверу.
Например, если у вас есть файл cookie, который выглядит следующим образом на вашем локальном компьютере:
MYCOOKIE:123, domain:www.test.com, path:/
Ваш сервер будет получать только:
MYCOOKIE:123
на сервере. Почему не отправляется путь и домен? Поскольку браузер хранит эту информацию на клиенте и не беспокоится о ее отправке, поскольку он отправляет этот файл cookie на ваш сервер, только если страница находится по адресу www.test.com< /em> и по пути /.
Поскольку это ваш сервер, вы должны иметь возможность изменить свой код, который создает новые файлы cookie. Если вы чувствуете, что по какой-то причине вам нужно сделать это за пределами вашего кода, вы можете сделать это с помощью чего-то вроде следующего, но вам нужно будет точно посмотреть, как ваш файл 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>
Это только переименует файлы cookie, которые вы получаете в запросе.
person
Brad Parks
schedule
25.09.2015
app.company.example
является недопустимым значением domain. Это либо должно быть.app.company.example
, либо просто опустить его, чтобы использовался текущий домен. - person Gumbo   schedule 10.02.2011