位置:首页 > 行业软件 > Safari浏览器为什么自动将我输入的HTTP网址强制跳转HTTPS

Safari浏览器为什么自动将我输入的HTTP网址强制跳转HTTPS

时间:2026-06-22  |  作者:318050  |  阅读:0

Safari 地址栏输入 HTTP 链接却自动跳转 HTTPS 且报错,不用怀疑,这十有八九是 HSTS 策略被本地缓存锁死了。

HSTS 跳转压根不走 HTTP 请求,所以你翻遍 Network 面板也找不到任何记录。

要想解除,无非三条路:删除 HSTS.plist 文件、管理网站数据,或者干脆直接清除全部历史与网站数据。

你在 Safari 地址栏输入 http://example.com,结果瞬间就跳到了 https://example.com。而那个网站实际上压根不支持有效的 HTTPS,于是直接报错——这事不能怪浏览器“自作聪明”。

原因很简单:Safari 已经被这个域名的 HSTS(HTTP Strict Transport Security) 策略给“绑架”了。它把“必须走 HTTPS”这条铁律写进了本地缓存。不管你清多少次 Cookie、刷新多少次页面,它都不会失效。

确认是否为 HSTS 导致的强制跳转

怎么验证?打开 Safari,输入 http://example.com 后,盯着地址栏看。如果在页面还没开始加载、甚至 DNS 解析和 TCP 连接都还没建立的时候,地址栏就已经变成了 https://——大概率就是 HSTS 缓存生效了。

关键区别:如果是服务器端的 301 重定向,开发者工具的 Network 面板里能清楚看到状态码。但 HSTS 跳转完全不发 HTTP 请求,Network 面板里连一条记录都不会有。

通过终端彻底删除全局 HSTS 缓存(macOS)

方法一:直接删掉 Safari 的 HSTS 策略数据库文件

  1. 彻底退出 Safari。 打开“活动监视器”,搜一下 Safari,确认没有残留进程。如果有,选中它,点顶部“X”强制退出。
  2. 打开“终端”应用,粘贴并执行这条命令:
    sudo rm -f ~/Library/Cookies/HSTS.plist
  3. 输入管理员密码(输入时屏幕上不显示字符,这是正常的)。回车后没有提示信息就说明删除成功。
    注意:此操作不可逆。 删除之后,所有曾经启用 HSTS 的域名都会失去强制 HTTPS 保护。
  4. 重启 Safari,再次输入 http://example.com 测试一下就知道效果了。

精准清除单个网站的 HSTS 记录(macOS/iOS 通用)

方法1:管理网站数据

如果你只想修复某一个域名,这个方式最合适。

  • macOS 上: 打开 Safari → 顶部菜单栏点击 Safari → 设置 → 隐私 → 管理网站数据…
  • iOS 上: 进入 设置 → Safari 浏览器 → 高级 → 网站数据

在搜索框里输入目标域名,比如 admin.localtest.dev(注意不要带 http://https://)。

找到对应条目后,确认一下它的“最后访问时间”是否跟你最近一次访问该站点的时间吻合——这样能避免误删其他正常网站的数据。

点击右侧“移除”按钮。如果这个域名有多个子域(例如 api.test.devwww.test.dev),在 macOS 上按住 Command 键,在 iOS 上多点选中,然后选择“全部移除”。

一键清空全部 HSTS 及关联数据(全平台覆盖)

方法一:清除历史记录与网站数据

  • macOS 操作: Safari 菜单栏 → 历史记录 → 清除历史记录… → 时间范围选“所有历史记录” → 勾选“Cookie 与网站数据” → 点击“清除历史记录”。
  • iOS/iPadOS 操作: 设置 → Safari 浏览器 → 滚动到底部 → 点击红色字体的“清除历史记录与网站数据” → 再次点击确认。

这一步会同时抹掉所有域名的 HSTS 缓存、Cookie、localStorage、IndexedDB 和浏览历史。如果你刚做完本地开发调试,又搞不清是哪个域名触发了 HSTS,这算是最彻底的兜底方案了。

来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多