2012-06-27 51 views
0

它似乎像谷歌鏈接到我的網頁包含一個「www」。在域之前,這會導致安全錯誤,因爲我正在從畫布中讀取數據,並且如果圖像來自「www.x.com」而非「x.com」,則圖像將被標記爲交叉對齊。重定向客戶端通過「www.domain.com」連接到「domain.com」使用django

所以我想知道什麼是最好的方式來重定向人從www的URL。在一個沒有?

(或者,我可以讓谷歌對不帶www鏈接?)

感謝

+0

對於Google部分,請檢查由Google編入索引的頁面,如果是'www.domain.com/...',則應該採用'domain.com/...'的形式。 – okm

回答

3

,最好的辦法是讓你的網絡服務器(阿帕奇/ nginx的)處理,而不是在做重定向, Django的。

在nginx的可能是這個樣子:

server { 
     listen 80; 
     server_name www.example.com; 
     rewrite ^(.*) http://example.com:80$1 permanent; 
} 

當然,你可以做到這一點在Django,只需檢查的子域www的存在,然後重定向到相同的URL,而不該子站點。在這種情況下,您需要將此邏輯添加到所有視圖中(例如,可能是裝飾器)。儘管如此,它很難維護,更好和更簡單的方法就是我上面提到的方法。

+0

+1同意。這個地方是在前端代理/網絡服務器,而不是在應用程序。 –

+1

我也同意@BurhanKhalid。但是如果你在你的Django代碼中使用它,請不要使用視圖裝飾器,而應該使用中間件。這就是應該爲* all *請求執行的代碼所屬的地方。 –

+0

感謝您指點我正確的方向。我的虛擬主機使用Apache,所以我發現這是有用的[鏈接](http://stackoverflow.com/questions/4192948/remove-www-site-wide-force-https-on-certain-directories-and-http-on -其餘的部分) – monkeymad2

相關問題