繁体   English   中英

htaccess http到带有www的https。 不重定向子域

[英]htaccess http to https with www. Without redirecting sub domain

我有一个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]

谁能看到这个问题?

您需要调整规则,以便它查找整个域而不是其中的一部分。 现在,您只是在寻找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]

对于除主域之外的所有域,都有一个附加的跳过条件:

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]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM