2

我很惊讶谷歌搜索这并没有为我的问题返回任何有用的解决方案。

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

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

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

4

2 回答 2

3

这个答案应该做到

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]
于 2013-03-05T07:30:51.130 回答
1

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

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
于 2013-03-05T09:19:45.523 回答