safari中http跳转https且网站不支持时,是hsts策略强制缓存所致;可通过终端删hsts.plist、管理网站数据精准清除单域、全量清空历史与网站数据三种方法解决。

当你在 Safari 中输入 http://dev.test.local 却立刻跳转到 HTTPS 并显示“无法访问”错误,说明该域名已被 HSTS 策略锁定并持久缓存;这种强制跳转与普通重定向不同,不依赖 Cookie 或网页缓存,必须通过底层策略清除才能恢复 HTTP 访问能力。
终端命令彻底删除全局 HSTS 数据库(macOS 专用)
这一步直接移除 Safari 存储 HSTS 策略的唯一文件,所有被记录的域名将立即失去 HTTPS 强制行为,适合开发调试中需快速降级连通的场景。
第一步:完全退出 Safari,打开“活动监视器”,搜索 Safari 进程,若存在则选中 → 点击顶部“X”图标 → 选择“强制退出”。【未彻底退出会导致 HSTS.plist 文件被占用,后续删除失败】
第二步:打开“终端”应用,粘贴执行以下命令:
sudo rm -f ~/Library/Cookies/HSTS.plist
第三步:输入当前管理员密码(输入时无任何字符显示,输完直接按回车即可)。
第四步:重新启动 Safari,直接访问 http://dev.test.local 验证是否仍跳转。若仍跳转,说明该域名可能已进入浏览器预加载列表,需配合其他方法。
精准清除单个网站的 HSTS 及全部本地数据(macOS/iOS 通用)
此方法不依赖终端,能定位并清除指定域名的完整本地状态,包括 HSTS 记录、Cookie、localStorage 和 Service Worker,适用于仅需修复某一个测试站点的情形。
方法一(macOS):
点击顶部菜单栏 Safari → 设置 → 隐私 → 点击“管理网站数据…” → 在顶部搜索框输入 dev.test.local(不含协议头)→ 找到条目后点击右侧“移除”按钮。
方法二(iOS/iPadOS):
进入“设置” → “Safari 浏览器” → “高级” → “网站数据” → 顶部搜索框输入 dev.test.local → 点击右侧“编辑” → 选中该条目 → 点击左下角“删除”。
注意:输入域名时不要加 http:// 或 https://,否则搜不到结果。
全量清空历史与网站数据(覆盖式重置)
当多个子域(如 api.dev.test.local、admin.dev.test.local)同时异常,或你不确定具体是哪个域名触发了 HSTS,就用这个兜底方案。它会同步擦除所有域名的 HSTS 缓存、浏览历史、自动填充、Cookie 和本地存储。
macOS 操作路径:
Safari 菜单栏 → 历史记录 → 清除历史记录… → 时间范围选“所有历史记录” → 勾选“Cookie 与网站数据” → 点击“清除历史记录”。
iOS/iPadOS 操作路径:
设置 → Safari 浏览器 → 滚动到底部 → 点击红色字体的“清除历史记录与网站数据” → 再次点击弹窗中的“清除历史记录与网站数据”确认执行。
这一步执行后无需重启 Safari,立即生效。但所有已登录网站会退出,需重新验证身份。











