2010-11-24 7 views
2

私のサイトがIE8で持ついくつかの問題を解決する可能性があるため、特定のCookieドメインをCookieに設定したいと考えています。 DjangoにはSESSION_COOKIE_DOMAINという設定があり、これを設定することができます。しかし、問題は私たちのサイトに代替ドメイン名を持つ複数のサブサイトが含まれていることです。だから私の質問は、どうすればこれを管理できますか?私はIE8のようなブラウザが同じドメインのものではないクッキーを拒否することを恐れているので、ドメインごとに標準のクッキードメインを持っていたいと思います。複数のドメイン名を持つDjangoサイトの既定のCookieドメインを設定する

私は自分で研究しますが、おそらく誰かが経験を持っているのだろうかと疑問に思いました。

更新:

私は実際に何をしたいのかは、私が他のドメインのためのdomain1.comエトセトラを訪問したときにdomain1のDjangoのストアクッキーを作ることです。私は、クッキーを保存するときに現在のクライアントドメインを使用するのと同じくらい簡単にすべきだと思います。

この質問と答えは私を助けた:私は

更新...たぶん私は、現在のドメインにグローバル設定を変更するミドルウェアクラスを構築できる...しかしそのDjangoは変更せずに、このような機能を提供します疑います: Changing Django settings variable dynamically based on request for multiple site ありがとうございます。

答えて

5

他のドメイン名のCookieは保存または取得できません。つまり、私がyahoo.comにいる場合、google.comのCookieを取得できません。しかし、foo.yahoo.comとbar.yahoo.comは両方とも.yahoo.comに保存されたクッキーを取得できます。

複数のサブサイトがあるウェブサイトを実行している場合、それらがすべて同じ基本ドメイン(site1.domain.com、site2.domain.comなど)を共有している場合は、そのドメインをSESSION_COOKIE_DOMAINに使用する必要があります。しかし、ドメインが異なる場合は、Cookieを入手する他の方法を使わずにCookieを共有することは基本的に不可能です。たとえば、セントラルサイトを指すイメージやスクリプトを含めることができます。そのサイトでは、JavaScriptを使用して残りのページで利用できるように、Cookieを保存および取得できます。

これらの代替ドメイン名を保持する必要がある場合は、これらの代替ドメイン名から共有標準ドメインにすぐにリダイレクトするようにWebサーバーを設定できます。これはmod_rewriteで簡単に行うことができます。

+0

返信いただきありがとうございます。私の質問をより明示的に私がしたいことを編集します:) –

関連する問題