【问题标题】:Can't redirect https for http无法将 https 重定向到 http
【发布时间】:2026-02-21 15:20:02
【问题描述】:

某些版本的 Chrome 会自动将 https 添加到我的网站地址。所以我需要将 https 重定向到 http,因为我没有 SSL 证书。我正在尝试这个,没有结果:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} =https
    RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  
</IfModule>

【问题讨论】:

  • 您在使用负载均衡器吗?我也不认为 Chrome 会这样做。对于数以百万计的网站来说,这将是一片混乱。
  • 这也可能有帮助superuser.com/questions/565409/…

标签: .htaccess html5boilerplate


【解决方案1】:

此问题可能重复:Nginx redirect to non-https address failes in Firefox。虽然他们从来没有弄清楚为什么会发生在那个人身上,所以希望我能和你有更多的运气。

所以首先你不能将 https 重定向到 http,直到 https 连接成功 - 这需要证书。允许这样做将是一个巨大的安全风险,并且不是 https 的工作方式。它首先建立 https 连接,然后通过 https 传递内容。并且重定向算作内容。

其次,您需要找出 Chrome 重定向到 https 的原因。因为,根据发生这种情况的原因,即使您可以重定向回 http 如果您有证书,那么您也可能会进入递归循环。我建议打开 Chrome,按 F12 打开开发人员工具,转到网络选项卡,单击保留日志,清除网络选项卡并单击“保留日志”,然后通过 http 加载页面并观察重定向。如果是 301 或 302 重定向,那么是您的服务器在执行此操作。如果它是 307 重定向,那么它是由于 HSTS。它是其他任何东西,然后是前端应用程序问题(即页面上的 Javascript)。

【讨论】: