我有一個Django支持的網站,我試圖解決「canonical hostname」問題。我希望www.example.com重定向到example.com。我已經嘗試了Apache documentation here中的兩種技術(向下滾動到規範主機名)。當在Firefox上重定向規範主機名時獲得雙斜槓(Django)
我目前正試圖mod_rewrite的方法,我有這個虛擬主機容器:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*)$ http://example.com/$1 [L,R=301,NE]
這對我的作品,除了一個案例。在Firefox中,如果我在瀏覽器中輸入www.example.com
,它會重定向,我在URL欄中看到:example.com//
(注意2個斜線)。
但是,像這樣的東西將正常工作:www.example.com/news/
被重定向到example.com/news/
。
我只在Firefox的根URL上看到這個。它似乎在Chrome,IE9和Opera下運行良好(也許這些瀏覽器吃雙斜槓?)。使用朋友的我的Mac說在Safari中它很好,但是他也看到了Firefox中的問題。
只要Django設置去,我使用的默認值APPEND_SLASH=True
。我不知道Django是否與它有任何關係,但是我之前已經在靜態HTML網站上嘗試了類似上面的mod_rewrite規則,並且它似乎總是有效。