Настройка файла cookie по умолчанию для сайта Django с несколькими доменными именами - PullRequest
2 голосов
/ 24 ноября 2010

Я хотел бы установить определенный домен cookie для моих файлов cookie, поскольку это может решить некоторые проблемы, которые, по-видимому, возникают у нашего сайта с IE8.Кажется, что у Django есть параметр SESSION_COOKIE_DOMAIN, который можно установить для этого.Однако проблема в том, что наш сайт содержит несколько дочерних сайтов, которые имеют альтернативные доменные имена.Итак, мой вопрос, как я могу справиться с этим?Я хотел бы иметь стандартный домен cookie для каждого домена, потому что боюсь, что браузеры, такие как IE8, будут отклонять файлы cookie, которые не принадлежат тому же домену (быстрее).

Я сам проведу исследование, но мне было интересно, если кто-нибудьВозможно, у меня есть опыт.

Обновление:

Что я на самом деле хочу сделать, так это заставить django хранить файлы cookie для домена1, когда я захожу на домен domain1.com и так далее для других доменов.Я думаю, это должно быть так же просто, как использовать текущий домен клиента при хранении файлов cookie.Однако я сомневаюсь, что django предлагает такую ​​функциональность без изменений ... Может быть, я мог бы создать класс промежуточного программного обеспечения, который изменяет глобальные настройки на текущий домен ..

Обновление:

Этот вопрос и ответ помогли мне: Изменение переменной настроек Django динамически на основе запроса для нескольких сайтов Спасибо за помощь:)

1 Ответ

6 голосов
/ 24 ноября 2010

Файлы cookie не могут быть сохранены или получены для других доменных имен. Другими словами, если я нахожусь на yahoo.com, я не могу получить cookie для google.com. Однако и foo.yahoo.com, и bar.yahoo.com могут извлекать файлы cookie, сохраненные на .yahoo.com.

Если вы используете веб-сайт с несколькими дочерними сайтами, если они все используют один и тот же базовый домен (например, site1.domain.com, site2.domain.com и т. Д.), Вы должны использовать этот домен для SESSION_COOKIE_DOMAIN. Но если у них разные домены, они не могут делиться файлами cookie, не используя какой-либо другой способ получения файлов cookie. Например, вы можете включить изображения или сценарии, которые указывают на центральный сайт, и этот сайт может хранить и извлекать файлы cookie, которые доступны для остальной части страницы через JavaScript.

Если вам необходимо сохранить эти альтернативные доменные имена, вы всегда можете настроить свой веб-сервер на немедленное перенаправление с этих альтернативных доменных имен на общий стандартный домен. Это легко сделать с помощью mod_rewrite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...