【问题标题】:How to force http如何强制http
【发布时间】:2017-09-15 18:57:01
【问题描述】:

我在 .htaccess 文件中有以下内容:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://example.com/$1 [R=302,L]

然而,当我转到 https://example.com 时,我在浏览器中看到无效的证书屏幕。在购买和安装 SSL 证书之前,如何强制访问者暂时访问 http://

【问题讨论】:

    标签: apache .htaccess http mod-rewrite directive


    【解决方案1】:

    重定向发生在带有 HTTP 响应标头的 HTTP 层上。 HTTPS 将 HTTP 封装成 TLS 连接;在 HTTP 层进行交互之前,必须先协商 TLS 连接。如果您的服务器无法协商有效的 TLS 连接,例如因为它无法提供客户端将接受的证书,所以它也无法在 HTTP 层重定向客户端。

    【讨论】:

    • 好的,换句话说,用外行的话@deceze,这无法完成?
    • @H.Ferrence 正确。
    【解决方案2】:

    您可以在 .htaccess 文件中使用以下代码:

    RewriteCond %{SERVER_PORT} ^443$ 
    RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    

    这会将端口请求 443 (SSL) 重定向到 80 (HTTP)。 我试过了,对我来说效果很好。

    【讨论】:

      猜你喜欢
      • 2020-08-09
      • 1970-01-01
      • 2016-07-10
      • 2012-05-08
      • 1970-01-01
      • 2019-05-01
      • 2015-09-16
      • 1970-01-01
      • 2013-10-14
      相关资源
      最近更新 更多