【问题标题】:.htaccess - two conditions – for https and for non-https subdomain.htaccess - 两个条件 - 用于 https 和非 https 子域
【发布时间】:2014-10-28 11:33:00
【问题描述】:

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

尝试了很多东西,但没有用。一直在这里搜索其他问题,但他们的解决方案似乎不起作用。有什么帮助吗?

谢谢

【问题讨论】:

    标签: .htaccess ssl


    【解决方案1】:

    尝试:

    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 AND cond2 AND cond3...do... 我不知道它是这样工作的。谢谢
    • @Lan 是的,所有条件本质上都是“与”在一起的,除非您使用 [OR] 标志。
    猜你喜欢
    • 2012-06-05
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2010-11-06
    • 2019-06-12
    • 2016-10-22
    • 2017-11-03
    • 2014-01-25
    相关资源
    最近更新 更多