如何在 Chrome 中停止从“http://”到“https://”的自动重定向

如何在 Chrome 中停止从“http://”到“https://”的自动重定向

我在我们的 DNS 设置中设置了一些奇怪的问题,现在已经解决了。

剩下的问题是 chrome 缓存了错误的设置。

具体来说,当使用 Chrome 时http://example.com现在会重定向到https://example.com(裸域),这是无效的/不受支持的。 http://example.com 应该重定向到http://www.example.com然后强制https://www.example.com

但在少数浏览器(包括我的浏览器)上,由于某些奇怪的 Chrome 缓存,这种情况不会发生。我尝试进入“隐私 -> 清除缓存”,但没有效果。

答案1

除了缓存重定向之外,HTTP 严格传输安全 (又名 HSTS) 也可能发挥作用。HSTS 是一项安全功能,它强制浏览器即使在访问 HTTP URL 时也使用 HTTPS。

浏览器在收到来自服务器的 Strict-Transport-Security 标头后,将开始对域使用 HSTS。浏览器还附带了默认启用 HSTS 的域列表。

在 Chrome 中,有一种方法可以在服务器添加域名后将其从 HSTS 中删除。不过,您无法排除浏览器中嵌入的域名(这包括热门网站,尤其是新.devTLD 下的所有内容)

  1. 前往chrome://net-internals/#hsts。输入示例.com在下面删除域安全策略并按下删除按钮。

  2. 现在去chrome://settings/clearBrowserData,勾选框缓存的图像和文件并按下按钮清除数据

答案2

我的问题来自于一个.dev域名,它显然最近被注册为 gTLD,并提交到了 Chrome Canary。我从最近贴文我在搜索我的问题时偶然发现了这一点。

如果你有和我一样的问题,最好的解决方案似乎是将你的域名更改为 以外的其他域名.dev。本文建议在以后使用.test的潜在解决方案(通过.localhost这个建议)。

答案3

删除域名在“HSTS”菜单下chrome://net-internals是临时解决方案。通过 HTTPS 访问此域名后,它将再次被纳入 HSTS 列表。

基本上,要解决这个问题,必须禁用 HTTP 严格传输安全在网络服务器上3rdrevolution.com(IIS、Apache、nginx 等)。对于 nginx,请编辑其 HTTPS 部分nginx.conf并为 Strict-transport-Security 设置‘max-age=0’:

server {
#...
        ssl on;
#...
        add_header Strict-Transport-Security "max-age=0;";
#...
}

更多信息:HTTP 严格传输安全 (HSTS)

答案4

造成这种情况的原因可能有几个,包括插件,但假设您没有安装任何插件,您可以执行以下操作:

设置/隐私/清除浏览数据...

选择刚开始的时候在下拉菜单中。

选择:

  • 清除已保存的自动填充表单数据
  • 删除 cookies 以及其他网站和插件数据
  • 清空缓存

选择清除浏览数据

这应该可以解决根据您之前的浏览进行自动填充的问题。此外,它还会删除任何可能导致问题的 cookie。

相关内容