我很惊讶谷歌搜索这并没有为我的问题返回任何有用的解决方案。
我只想将非 www 请求重定向到 www.. 但如果它是子域,我希望它忽略它。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
这会将非 www 重定向到 www,但如果我输入一个子域,它会附加一个“www”。在它面前..我需要停止这种行为。
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]
我已经不得不做同样的事情,这对我有用
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]