首页 > 解决方案 > 将网站从 https 重定向到 http 但浏览器显示“重定向过多”

问题描述

这是我的 .htaccess 文件:

RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

问题是当我将此规则添加到我的 .htaccess 文件并重新加载它说我“重定向过多”的站点时,该站点无法正常工作。为什么?如何将 https 更改为 http?我只想在几周内进行此更改,但我不知道如何进行。谢谢

编辑:

我将代码更改为:

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

但它仍然不起作用

标签: .htaccess

解决方案


尝试:

RewriteCond %{HTTPS} !^off$
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

或者:

RewriteCond %{SERVER_PORT} ^443$
RewriterRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

如果这不起作用,浏览器可能会阻止它重定向回 http。或者,浏览器在重定向到 HTTP 后重定向回 HTTPS,并且循环从那里开始。

无论如何,将https重定向到http是一个非常糟糕的主意。如果 ssl 证书是您的问题,您可以从 LetsEncrypt 免费获得一个 :) 对于 localhost,您可以创建自己的自签名证书,并在您的电脑中信任它。

您实际上应该通常从 HTTP 重定向到 HTTPS,因为需要安全性。


推荐阅读