通过.htaccess将非www重定向到除子域名以外的www

时间:2015-06-13 09:52:05

标签: regex apache .htaccess mod-rewrite

有几个这样的问题,但我的问题有点不同

Redirect non-www to www in .htaccess

force non www to www in htaccess

Redirect Non-WWW to WWW URLs

我想将网站的非www版本重定向到www,但它不应以任何方式影响子域名,所以

www.example.com => www.example.com
example.com => www.example.com
sub1.example.com => sub1.example.com
sub2.example.com => sub2.example.com

这不起作用,因为它在子域

的情况下表现不佳
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

此解决方案正常运行

RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) https://www.example.com/$1 [R=301,L] 

然而,重要的是我不想在htacess中对域名进行硬编码。如何(如果可能的话)对一般情况有上述重定向 - 没有提到确切的域名?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用此规则:

RewriteCond %{HTTP_HOST} ^[^.]+\.com(\.au)?$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]