将根域重定向到https,而不是子域

时间:2016-09-17 19:19:19

标签: apache .htaccess redirect https

我知道其他帖子(https://stackoverflow.com/a/25196859/730378https://stackoverflow.com/a/20915595/730378)已经回答了这个问题,但我已经尝试了这两个帖子,但两个都没有为我工作。

使用下面的htaccess代码可以重定向到根域和别名的https,但子域保持重定向并使用https作为子域,这是我不想要的。

####
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !=subdomain.rootdomain.ca [NC,OR]
RewriteCond %{HTTP_HOST} ^(www.)?rootdomain.ca$ [NC,OR]
RewriteCond %{HTTP_HOST} ^(www.)?rootdomain.biz$ [NC,OR]
RewriteCond %{HTTP_HOST} ^(www.)?rootdomain.co$ [NC,OR]
RewriteCond %{HTTP_HOST} ^(www.)?domainalias.biz$ [NC,OR]
RewriteCond %{HTTP_HOST} ^(www.)?domainalias.ca$ [NC]
RewriteRule (.*) https://rootdomain.ca/$1 [R=301,L]

1 个答案:

答案 0 :(得分:1)

您应该在第一个条件下使用!^而不是!=,但从技术上讲,您甚至不需要第一个条件。只有匹配根域或别名时,它才会重定向到root。整合所有这些条件并以这种方式尝试您的代码。清除缓存并尝试此操作。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(rootdomain|domainalias)\.(ca|biz|co)$ [NC]
RewriteRule (.*) https://rootdomain.ca/$1 [R=301,L]