2010-11-24 145 views
2

我想爲我的cookie設置一個特定的cookie域,因爲這可能會解決我們的網站似乎與IE8有關的一些問題。 Django似乎有一個名爲SESSION_COOKIE_DOMAIN的設置,可以將其設置爲獲取此設置。然而,問題是我們的網站包含多個具有替代域名的子網站。所以我的問題是,我如何管理這個?我想每個域都有一個標準的Cookie域名,因爲我擔心IE8等瀏覽器會拒絕來自同一個域名(更快)的Cookie。爲多個域名設置Django站點的默認cookie域

我會研究自己,但我想知道如果任何人也許有經驗。

更新:

什麼其實我想要做的就是讓Django的存儲cookies爲域1當我訪問domain1.com諸如此類的其他領域。我認爲它應該像存儲cookie時使用當前客戶端域一樣簡單。但我懷疑,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上的Cookie。

如果您正在運行包含多個子網站的網站,如果它們全部共享相同的基本域(即site1.domain.com,site2.domain.com等),則應該使用該域用於SESSION_COOKIE_DOMAIN。但是,如果他們有不同的域名,他們基本上不可能共享cookie,而無需使用其他獲取cookie的其他方法。例如,您可以包含指向中心站點的圖像或腳本,該站點可以存儲和檢索Cookie,這些Cookie可通過JavaScript提供給頁面的其餘部分。

如果您必須保留這些備用域名,則可以始終將您的Web服務器設置爲從這些備用域名立即重定向到共享標準域。這很容易與mod_rewrite。

+0

感謝您的迴應,清除了一切!將更明確地編輯我的問題,我想要做什麼:) – 2010-11-25 00:35:22