【问题标题】:HTTPS for only one pageHTTPS 仅用于一页
【发布时间】:2014-05-07 13:46:54
【问题描述】:

我的客户只需要在单个页面上使用 HTTPS。在站点的其余部分,简单的 HTTP。我知道这有点奇怪,但我必须这样做。通过 .htaccess 它可以是:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

如何添加条件以跳过该安全 (https://example.com/secure/) 页面?

【问题讨论】:

    标签: .htaccess http mod-rewrite ssl https


    【解决方案1】:

    你可以这样:

    Options +FollowSymLinks 
    RewriteEngine on 
    
    RewriteCond %{HTTPS} off
    RewriteRule ^secure(/.*)?$ https://%{HTTP_HOST}%{REQUEST_URI}  [L,R=301,NE]
    
    RewriteCond %{HTTPS} on
    RewriteRule !^secure(/.*?)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
    

    【讨论】:

    • 所以如果 HTTPS 关闭并且页面是“/安全”,则重定向到 https。如果 HTTPS 已打开且页面不是“/安全”,则重定向到 http。对吗?
    • 正确且符合第二条规则。如果 https && uri 不是以 /secure/ 开头,则强制 http://
    • 谢谢。顺便说一句,/secure/ 是一个页面。所以我应该让 ^secure[/]?$ 对吗?保留/可选。
    • 是的,确保尾随 / 可选以覆盖这两种情况更安全(见编辑)。
    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 2012-10-20
    • 2016-12-10
    • 2013-03-12
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    相关资源
    最近更新 更多