.htaccess-强制除子域之外的https

.htaccess-强制除子域之外的https,.htaccess,internet-explorer,subdomain,.htaccess,Internet Explorer,Subdomain,我目前正在使用: RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} !=subdomain.domain.com RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 它似乎可以通过https加载我的主页,通过http加载我的子域,但只能在IE中加载。它在chrome或firefox中不起作用 当我进行此设置时: RewriteCond %{HTTPS} = off RewriteCond

我目前正在使用:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !=subdomain.domain.com
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
它似乎可以通过https加载我的主页,通过http加载我的子域,但只能在IE中加载。它在chrome或firefox中不起作用

当我进行此设置时:

RewriteCond %{HTTPS} = off
RewriteCond %{HTTP_HOST} !=subdomain.domain.com
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
它根本拒绝加载我的子域

有人能给我解释一下https=off和https之间的区别吗=在…上我做错了什么,阻止它在firefox和chrome中工作

有人能给我解释一下https=off和https之间的区别吗=在…上我做错了什么,阻止它在firefox和chrome中工作

%{HTTPS}=off
错误。Mod rewrite在解析其规则方面不是很聪明,因此当它看到
=
off
之间有一个空格时,它认为
off
是重写条件标志,这会抛出一个错误,因为这不是一个有效的标志。您实际上不需要
=
=素材:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^subdomain\.domain\.com$ [NC]
足够好了,你的第一条规则也很好

RewriteCond %{HTTPS} !=on

都一样


这里的问题不是您的重写规则,而是您的服务器如何配置SSL或某些浏览器设置(或者您需要清除缓存)。

非常感谢您的回复!它肯定澄清了我遇到的许多问题,多亏了你,我才得以工作!
RewriteCond %{HTTPS} !on
RewriteCond %{HTTPS} =off
RewriteCond %{HTTPS} off