仅将非www重定向到www - 忽略所有子域

时间:2013-03-05 07:24:50

标签: apache .htaccess

令我感到惊讶的是,谷歌搜索并没有为我的问题找回任何有用的解决方案。

我想将非www请求重定向到www ..但如果它是子域名,我希望它忽略它。

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

这会将非www重定向到www,但如果我输入子域,则会附加“www”。在它面前..我需要阻止这种行为。

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:1)

我已经做了同样的事情,这对我有用

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