我有一個Django項目,使用https對URL的某些部分(/ account /,/ admin /,/ purchase /)。Django相關網址和https
當以https模式在此頁面之一上時,所有相關的內部鏈接{%url foo%}將指向https://my_url。
但是我不希望有顯示爲HTTPS這些頁面:主頁,聯繫人......
什麼是這種需求解決方案?
強制絕對url?
http://{{ domain }}{% url foo %}
不太好。
我有一個Django項目,使用https對URL的某些部分(/ account /,/ admin /,/ purchase /)。Django相關網址和https
當以https模式在此頁面之一上時,所有相關的內部鏈接{%url foo%}將指向https://my_url。
但是我不希望有顯示爲HTTPS這些頁面:主頁,聯繫人......
什麼是這種需求解決方案?
強制絕對url?
http://{{ domain }}{% url foo %}
不太好。
正如Tomasz所建議的,一種方法是設置中間件以根據需要重定向到https或從https重定向。這裏的one implementation--這個想法是修飾那些應該在https下提供的視圖,當用戶導航到不應該安全的視圖時,中間件會自動將它們重定向回頁面的http版本。
想法:您可以使用自定義中間件從https重定向到http(或反之),以實現中心URL或URL模式。這也可以在Apache(或其他Web服務器)配置中完成。
可以使用您的web服務器重寫爲http,這種方式Django甚至不需要知道。
我覺得this snippet很好地照顧情況。需要SSL的視圖將通過從http到https版本的url進行重定向,反之亦然。
是的,在https頁面上,到站點中非https頁面的出站鏈接仍將以https開頭,但用戶將被重定向到http版本。
(有一種疑難雜症,但是:如果你從HTTP發佈到HTTPS,反之亦然它不會工作)
鏈接不工作 – andi 2014-05-13 11:06:46