我有一个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]
有人能看到问题吗?
答案 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]
清除浏览器缓存后进行测试。