2013-03-09 82 views

回答

2

爲避免出現在子域名上,您只需匹配主域名而不是www.該版本將非常一般地匹配,任何包含兩部分的域名並不以www開頭,不匹配任何域名的域名爲3首先不是www的部分。

RewriteEngine On 
# Doesn't start with www 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
# And does not also have a subdomain 
RewriteCond %{HTTP_HOST} !^[a-z0-9_-]+\.[a-z0-9_-]+\.[a-z0-9_-]+$ [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

但是,這是簡單的,如果你有一個固定的一套域的處理。不要檢查從www開始,請僅在與裸露域匹配時執行重定向。根據需要將多個域名添加到(|)或分組中。

RewriteEngine On 
# Matching any of 3 domains without www, and no subdomain 
RewriteCond %{HTTP_HOST} ^(domain1|domain2|domain3)\.com$ [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
+0

第二個代碼會將我重定向到www.mydomain.com.com(與兩個.com) – anarchOi 2013-03-10 05:18:21

+0

@anarchOi哎呀抱歉,刪除.com。複製/粘貼錯誤。 – 2013-03-10 05:28:07

1

如果你想重定向只有主域

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule .* http://www.%{HTTP_HOST}/$0 [R,L] 

決不會啓用301測試,詳見這個答案Tips for debugging .htaccess rewrite rules