Firefox重定向到https

205
我正在使用Firefox,设置服务器时,我一直在调整重定向。现在,Firefox已经缓存了从http://example.com/https://example.com/,以及从http://sub.example.com/https://sub.example.com/的301重定向。 我尝试了以下方法:
  1. 历史记录->显示所有历史记录->忘记此站点。
  2. 检查是否存在任何书签与https://example.com/相同。
  3. 在about:config中将browser.urlbar.autoFill更改为false。
  4. 将browser.cache.check_doc_frequency从3更改为1。
  5. 选项->高级->网络->缓存的Web内容->立即清除。
以上方法都无效,因此我使用wheregoes.com检查了重定向,但未显示从http到https的任何重定向。我甚至将DNS更改为指向由服务器提供的另一个IP地址,其中我从未设置过重定向-重定向仍然有效。 我还尝试在Firefox的隐私浏览中进行,那里没有重定向。我在Google Chrome中尝试过,这里也没有重定向。 我还尝试过从https到http进行重定向,在Google Chrome中工作正常,在Firefox中则出现重定向错误。 我的Firefox版本是38.0.1,我使用的是Windows 8.1。我使用以下插件:AddBlock、Avast!和LastPass。虽然我在测试时已禁用了Avast!,但可能不是问题的原因。 我该怎么办?

7
最近几天我在本地开发中遇到了同样的问题,但我在以下参考资料中发现Chrome和Firefox现在通过预加载HSTS强制将.dev域名重定向到HTTPS,请阅读以下信息。-https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/ - https://medium.engineering/use-a-dev-domain-not-anymore-95219778e6fd 为了未来的开发,建议您使用.local或.localhost以避免再次出现此问题 :) - Sophy
这个在 Chrome 中可行:https://dev59.com/c18e5IYBdhLWcg3w4dik#28586593 - rubo77
这对我有用 https://dev59.com/c18e5IYBdhLWcg3w4dik#65325368 - ztom
我在这里添加一条可能对某些人有用的注释:我的简单场景是,我正在测试一个配置了端口80的httpd的EC2实例。 http://1.2.3.4/ 一直被“转换”为 https://1.2.3.4。问题是由于错误配置,httpd服务器未能响应,因此Firefox自动尝试使用https协议。一旦我修复了httpd,Firefox就停止了“转换”。 - Marcello Romani
18个回答

273
“网站首选项”是罪魁祸首。浪费了我45分钟的时间,尽管尝试了所有的kb/support.mozilla的技巧,但都没有解决我的问题,也不能解决你的问题。我不知道是什么触发了这个问题,但是我的几个网站在几周内开始出现问题,只影响到我,而且只有在Firefox浏览器上。
这就是你们都在寻找的解决方案: Firefox 119.0及以上版本(2023年:8年后,我再次遇到了同样的问题,意识到需要更新一下:)
  1. 打开设置
  2. 在设置中搜索清除历史记录(右上角)
  3. 点击清除历史记录按钮(目前不会清除任何内容,是安全的)
  4. 取消选择“全部
  5. 选择网站设置
  6. 点击立即清除
  7. 现在尝试一下

Firefox 119.0 clear history


旧版火狐浏览器(2015年:当我最初回答时)

  1. 进入偏好设置
  2. 隐私
  3. 点击“清除浏览历史”(暂时不会有任何反应,可以放心点击)
  4. 弹出窗口出现后,点击详细信息
  5. 除了“站点首选项”,取消选中其他所有选项
  6. 在顶部的下拉框中选择“全部
  7. 点击确定
  8. 现在可以尝试了

Firefox capture

PS:我尝试过但没有成功的方法有:
  • urlbar.autofill false
  • 忘记网站的技巧
  • 安全模式
  • 我们都知道,当你拥有并且之前访问过的网站从未支持https,但现在FF要求你使用https时,这不是一个HSTS问题... 在我看来,这只是一个Firefox的bug。

1
谢谢。自从我提出这个问题以来,我已经发现这绝对是STS的后果。你的解决方案似乎有效,所以我会接受它作为答案。我确定我在九个月前就尝试过你的技巧,当时我遇到了这个问题 - 所以可能是他们修复的一个错误。 - talouv
13
现在,在Firefox 49中,这是链接“清除最近的历史记录”,请参见屏幕截图,可在隐私、浏览历史记录和不跟踪设置 | Firefox帮助找到。 - Wolf
19
在清除历史记录时勾选“缓存”这一项对我很有帮助。 - cakan
1
@Ralf:如果在Chrome和Edge中失败,那么这不是Firefox的问题,而是服务器问题(或代理或任何干扰HTTP协议的活动网络设备)。 - Thomas
4
清空Firefox 60中的所有数据对我没有帮助。当然,这不是服务器问题(我用Wireshark检查过了,只有在443端口上的连接:())。 - Maypeur
显示剩余10条评论

171

对我有效的解决方案:

  1. 进入 about:config
  2. 查找 network.stricttransportsecurity.preloadlist 并将其设置为 false
  3. 享受吧!

如果上述方法仍然不起作用,请尝试从 about:config 将 browser.fixup.fallback-to-https 设置为 false

如果您使用Firefox 100或以上版本,您可能还需要:

  • dom.security.https_first 设置为 false
  • dom.security.https_first_pbm 设置为 false(这是针对匿名窗口的)

5
这就是我所寻找的设置。对我有用。 我将urlbar.autofill设为false(没有用)。我将accessibility.autoblockrefresh设为true(没有用)。但是这个network.stricttransportsecurity.preloadlist对我有用。 Firefox v 67.0.4 - John Greene
6
这不起作用。即使结合了被接受的答案,也就是说,我都做了,然后关闭并重新打开浏览器——Firefox仍然会重定向到https。非常气人。 - arnoldbird
18
对我来说这个方法不起作用,所以我将 browser.fixup.fallback-to-https 设置为 false - Muhammad
这在 Firefox 94 中对我有效。 - John Freeman
1
browser.fixup.fallback-to-https 对我也适用。例如:http://somedomain 如果该域名不存在或无法连接,则不再跳转到 httpS://somedomain - vee
显示剩余3条评论

41

我遇到了同样的问题,但答案是我在本地网站中使用了 .dev 扩展名!

我清除了 Firefox 中的所有历史数据,但没有任何改变。

寻找另一种解决方案时,我找到了这个页面 https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

由于 .dev 是一个官方 gTLD,我们最好将首选的本地开发后缀从 .dev 更改为其他内容。如果您正在寻找现有设置的快速“搜索和替换”替代方案,请考虑使用 .test gTLD,该名称是 IETF 专门用于测试(或开发)目的的保留名称。

我将本地网站扩展名从 .dev 更改为 .test ,所有工作都完美运行!


谢谢!将我的本地URL从.com更改为.test对我有用。 - arnoldbird
1
如果你被.dev卡住了,你可以通过配置更改防止Firefox强制使用HTTPS - colan

23

另一种简单的解决方案。

打开 Firefox,在地址栏中输入以下 URL

http://example.com/?fake_parameter_to_bypass_cache

这应该强制浏览器从http://重新加载网页。


3
行,没问题。 "LOL, it worked for me. I haven't cleared the cache yet. Now that I've realized this, next step is to clear browser cache." 哈哈,这对我起作用了。我还没有清除缓存。既然我意识到了这一点,下一步就是清除浏览器缓存。 - yanntinoco
我不想清除我的缓存/历史记录,而且两个配置项已经是false了,所以我尝试了这个并且它起作用了。 - caduceus
不适用于我的 Firefox 88.0。 - MosQuan

19

没有任何答案对我有效,唯一有效的是在Muhammad的评论中提到的那一个,所以提前感谢他,我将答案复制到这里以便更容易查看:

  • 前往about:config
  • 查找browser.fixup.fallback-to-https并将其设置为false

2
这是唯一对我有效的方法。我的个人资料中没有HSTS条目,也不想完全禁用HSTS。结果证明出了某些原因 - 感觉像是FF中的一个错误,因为此设置应该在尝试连接到站点失败后仅尝试HTTPS而不是HTTP。 - Tom Jardine-McNamara
肯定有很多错误的答案,但这个完美无缺地运行了。谢谢。 - CasaCoding
对我没用(Firefox 109.0.1)。 - Esn024
对我来说没用(Firefox 120.0.0)。 - undefined

19

检查你的扩展程序!

在我的情况下,DuckDuckGo 隐私精选 扩展程序引起了这个重定向。我禁用了它,问题解决了。


5
Privacy Essentials 的行为非常不敏感。我输入的是 http,而不是 https。我一直怀疑是 HTTPS Everywhere 引起的,我忘记了这一点。谢谢。 - Default
一个相对简单的尝试方法是打开一个私密窗口。这会禁用所有扩展程序。我认为它还会执行其他一些可能也能解决问题的操作,所以它可能不是一个完美的测试。 - Chris

6
现在(Firefox 84版本),清除网站数据变得更加简单。只需点击地址栏左侧的挂锁图标,然后选择“清除Cookie和站点数据”。我遇到了与原帖作者类似的情况,这种方法帮助我清除了 HTTPS 重定向。

在这一页的所有其他解决方案中,这是唯一一个对我有效的。谢谢你挽救了我留下的仅存头发,因为这个问题让我快要抓狂了。/g - TheIcemanCometh

4
在我的情况下,我决定在本地开发中使用*.dev域名。但后来我尝试在Firefox中打开该站点,过了一会儿我意识到它使用HTTPS,即使我使用"http://..."开头的URL。我尝试右键单击历史记录中的链接,选择"忘记此站点"或清除缓存。但这并没有帮助。

后来我发现这些日子里dev域名在HSTS preload list中。这意味着Firefox和Chrome(以及可能其他浏览器)不允许您访问没有HTTPS的子域。更多信息请参见herehere


1
你的意思是“不允许你在没有 HTTPS 的情况下访问子域名”? - volkerk
非常感谢。将 *.dev 更改为 *.local 解决了我的问题。 - Mikhail Shcheglov

3
以下是关于在Firefox v98.0.2上使HTTP起作用的方法:
  1. 打开“设置”-> “通用”
  2. 网络设置 -> 设置
  3. 取消勾选"启用DNS over HTTPS"

在Firefox v98.0.2上启用http


2
我尝试了“正确”的答案,还包括在删除中包含缓存的评论,但我的问题网站仍然存在问题。
我打开了Firefox配置文件目录,并在所有文件中搜索网站名称。
我在“logins-backup.json”文件中找到它,并删除该文件,最终解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接