HSTS强制跳转需精准清除单个域名记录或删除全局HSTS.plist文件:先通过“隐私→管理网站数据”搜索并移除dev.local条目;或退出Safari后执行sudo rm -f ~/Library/Cookies/HSTS.plist。

你在Safari地址栏输入http://dev.local却瞬间跳转到https://dev.local,页面甚至没发出任何网络请求就报错,说明HSTS策略已固化在本地缓存中——这不是服务器重定向,而是浏览器在DNS解析前就执行的强制拦截,清Cookie、刷新页面、重装浏览器都无效。
确认是否为HSTS导致的跳转
这一步必须做,否则后续所有操作都是白忙。打开Safari,地址栏输入http://你遇到问题的域名(例如http://test.internal),观察地址栏:若在页面开始加载前就自动变成https://,且开发者工具Network面板里完全空白、无任何请求记录,就是HSTS生效。服务器301跳转会留下状态码,而HSTS跳转根本不发HTTP请求。
精准清除单个域名的HSTS记录(推荐首选)
此操作只移除目标域名的HSTS策略,不影响其他网站的安全保护机制,适合仅需修复某一个开发域名的场景。
1、打开 Safari 浏览器 → 点击左上角菜单栏「Safari」→ 选择「设置」(macOS Sonoma 及更新版本)或「偏好设置」(旧版)。
2、切换到「隐私」标签页 → 点击右下角「管理网站数据…」按钮。
3、在弹出窗口顶部搜索框中输入目标网站的完整二级域名,例如【dev.local】或【test.internal】——注意不能带 http://、https://、www 或任何路径,子域必须精确匹配,否则无法检索到对应条目。
4、在结果列表中确认该条目「最后访问时间」为近期、「数据大小」非零;选中后点击右侧「移除」按钮。若该域名存在多个子域(如 api.dev.local 和 admin.dev.local),可按住 Command 键多选后再点「全部移除」。
5、关闭窗口,直接在地址栏重新输入 http://dev.local 并回车——此时 Safari 将不再强制跳转 HTTPS,页面开始正常加载。
彻底删除全局HSTS.plist文件(开发调试专用)
适用于本地开发环境反复切换HTTP/HTTPS、自签名证书失败等场景,执行后所有曾启用HSTS的域名均解除强制HTTPS锁定。
第一步:完全退出 Safari —— 打开「活动监视器」,搜索 Safari,确认无残留进程;若存在,选中 → 点击顶部「X」强制退出。
第二步:打开「终端」应用,粘贴并执行以下命令:
sudo rm -f ~/Library/Cookies/HSTS.plist
第三步:输入当前用户管理员密码(输入过程无任何字符反馈,属正常现象),按回车。【此操作不可逆,删除后所有域名将永久失去HSTS强制HTTPS保护】
第四步:重新启动 Safari,访问 http://dev.local 验证是否仍自动跳转。

















