2013-03-05 127 views
2

我很驚訝,谷歌搜索這沒有返回任何有用的解決方案,我的問題。只重定向非www到www - 忽略所有子域

我想重定向只有非www請求www ..但如果它是一個子域,我希望它忽略它。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] 

這將非www重定向到www,但是如果我輸入一個子域它會追加一個「www」。在它前面..我需要停止這種行爲。

回答

3

this answer should do it

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

而且也採取HTTPS考慮:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
+0

我想你的代碼它似乎仍然是一個子域重定向到「www.subdomain.example.com」 – user2103849 2013-03-05 07:32:45

+0

如何abo編輯我添加 – StrikeForceZero 2013-03-05 07:33:18

+0

創建一個循環,並不斷追加www。無限次 – user2103849 2013-03-05 07:35:45

1

我已經做同樣的事情,這個工作對我來說

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]