.htaccess-两个条件–;对于https和非https子域

.htaccess-两个条件–;对于https和非https子域,.htaccess,ssl,.htaccess,Ssl,我有我的站点的ssl证书 我正在使用htaccess将所有人重定向到我网站的https url 如有人输入http://www.example.com或仅www…将被重定向到https地址 一切正常 但是现在我已经创建了子域http://www.blog.example.com 这是不受ssl保护的。 所以我需要这个url不要重定向到https 这与我当前拥有的htaccess相同: Header set Strict-Transport-Security "max-age=31536000;

我有我的站点的ssl证书

我正在使用htaccess将所有人重定向到我网站的https url

如有人输入
http://www.example.com
或仅
www…
将被重定向到https地址

一切正常

但是现在我已经创建了子域
http://www.blog.example.com

这是不受ssl保护的。 所以我需要这个url不要重定向到https

这与我当前拥有的htaccess相同:

Header set Strict-Transport-Security "max-age=31536000; "
RewriteEngine On

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

RewriteCond %{HTTP_HOST} ^blog.example.com [NC]
RewriteRule ^(.*)$ http://www.blog.example.com/$1 [R=301]
尝试了很多东西,但都不起作用。一直在寻找其他问题,但他们的解决方案似乎不起作用。有什么帮助吗

谢谢

试试:

Header set Strict-Transport-Security "max-age=31536000; "
RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !blog\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R]

是的,它有效。非常感谢。我去掉了最后一个条件,因为我不需要它。但是谢谢。总之是这样;如果你把条件叠加起来,它就像一个if…AND。如果cond1和cond2和cond3…做。。。我不知道它是这样工作的。thanks@Lan是的,除非您使用
[或]
标志,否则所有条件本质上都是“和”组合在一起的。