2010-01-12 40 views

回答

1

將這個在.htaccess文件在您的網站的根目錄:

RewriteEngine On 
RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTP_HOST} !^domain\.name 
RewriteRule (.*) http://domain.name/$1 [R=301,L,QSA] 

這是他們做什麼,爲了:

  1. 打開重寫引擎上
  2. 確保HTTP_HOST提供
  3. 如果它不以的名稱開頭而沒有www任何其他子域,然後允許重寫繼續。這可以防止無盡的重定向回到自己。
  4. 抓取URL (.*)後面的所有內容,包括查詢字符串QSA,並將R=301重定向到正確的域。 L只是說這是如果找到匹配文件中的最後一個命令。
+0

是'%{HTTP_HOST}。 '沒用? – user198729

+0

不,我相信它允許您通過IP地址訪問站點而不被重定向。 –

+0

這是一個很好的描述! – jspcal

2
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.domain\.name$ [NC] 
RewriteRule (.*) http://domain.name/$1 [R=301,QSA,L] 
+0

這需要mod_rewrite。只需使用更常用的mod_alias即可使用重定向(或RedirectMatch)。 –

+0

不,你不能使用重定向 – jspcal

0

在Apache中,您將Redirect行添加到配置文件中。在php中,您使用狀態碼301和位置:標題進行回覆。

但是,重定向需要額外的網絡往返。你確定你不想只使用一個ServerAlias產品線,以便無論他們是使用或不使用www來訪問相同的內容。