htaccess http到https用www。没有重定向子域

时间:2015-05-14 16:31:09

标签: apache .htaccess mod-rewrite redirect

我有一个RewriteRule将我的主域重定向到https://www.sta-games.com,但工作正常,但当我尝试访问我的子域http://files.sta-games.com时,它会重定向到我的主域。

继承我的重定向规则

#HTTPS Redirection
RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

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

有人能看到问题吗?

2 个答案:

答案 0 :(得分:0)

您需要调整规则,使其查找整个域而不仅仅是其中的一部分。现在你只是在寻找www的缺席。这就是你的子域重定向的原因。

首先,您需要合并规则,因为如果https未打开且似乎没有www,您似乎想要重定向,因此请制定一条规则。然后在规则中使用您的实际域名。将example.com替换为您的域名。这应该可以解决您的问题。

#HTTPS Redirection
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com
RewriteRule ^(.*)$ https://www.example.com%{REQUEST_URI} [L,R=301]

答案 1 :(得分:0)

除主域外的所有域都有其他跳过条件:

RewriteCond %{HTTP_HOST} ^(www\.)?sta-games\.com$ [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.sta-games.com%{REQUEST_URI} [L,R=301,NE]

清除浏览器缓存后进行测试。