【问题标题】:.htaccess How to Exclude One Site From SSL?.htaccess 如何从 SSL 中排除一个站点?
【发布时间】:2014-09-17 02:31:45
【问题描述】:

我试图排除一个网站使用 SSL,但我似乎无法正确获取指令。我希望我的所有附加域都使用 SSL,除了 example.com。 (因为 StartSSL 很难相处)

# Enable https
RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}:443%{REQUEST_URI}
RewriteRule !^example.com(/|$) https://%{HTTP_HOST}:443%{REQUEST_URI}

【问题讨论】:

    标签: .htaccess mod-rewrite ssl


    【解决方案1】:

    您尝试执行的操作将行不通。 SSL 握手会在任何请求数据发送到服务器之前进行初始化,因此,无论你做什么,如果有人转到 https://example.com,你都会收到证书异常。

    如果您不关心证书异常,那么您需要匹配%{HTTP_HOST} 变量:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    如果你需要:

    RewriteCond %{HTTPS} on
    RewriteCond ^{HTTP_HOST} ^(www\.)?example\.com$ [NC]
    RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 2016-12-09
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多