2013-01-12 67 views
1

我強迫SSL的虛擬主機在nginx有:Nginx的力SSL(HTTPS)與Cookie轉發

if ($ssl_protocol = "") { 
    rewrite^https://www.mydomain.com$request_uri? permanent; 
} 

的問題是,如果一個用戶登錄,與會話(餅乾),然後打開一個新的並轉到http://www.mydomain.com這工作,並轉發到https,但會話丟失。我認爲,因爲cookie不會被nginx的重寫規則轉發。

有沒有辦法轉發cookie以及運行重寫?

謝謝。

回答

1

Cookie與重定向無關。發送「重定向」消息的服務器與它無關。它純粹是網絡瀏覽器,用於決定是否在給定請求上發送cookie。這基於cookie上設置的屬性,如路徑,域,安全和HttpOnly。我想你會發現用戶Cookie的屬性設置的方式是告訴瀏覽器在訪問新的URL時不要發送它們。例如,如果您重定向到不同的域,這肯定會發生。

0

解決問題的一個辦法是分開兩個問題,維護會話和身份驗證。然後,您可以保留會話標識不受保護,僅用於維護會話,並使用單獨的cookie來檢查登錄狀態。

如果一個站點使用HTTP與HTTPS混合,則該標識將在URL中傳輸明文