Safari强制重定向到我以前通过https访问的网站的https版本。
但是,https站点不再起作用,并且无法阻止Safari表单尝试加载它。
这是一个与Apple论坛相关的问题,Safari不断将http重定向到https
Safari强制重定向到我以前通过https访问的网站的https版本。
但是,https站点不再起作用,并且无法阻止Safari表单尝试加载它。
这是一个与Apple论坛相关的问题,Safari不断将http重定向到https
Answers:
如果该站点先前已向Safari指示希望一直通过HSTS(HTTP Strict Transport Security)通过HTTPS访问该站点,则Safari将始终尝试重定向到HTTPS。
您可以通过删除清除HSTS缓存~/Library/Cookies/HSTS.plist
。
请注意,Safari也会确实缓存301重定向一段时间,因此也可能需要清除正常的Safari缓存:从Develop菜单(在Preferences→Advanced中启用),选择Empty Caches。
自2017年12月以来,Google已将“ .dev” TLD添加到Chrome的预加载HSTS列表中!
Safari使用相同的列表。因此,Safari始终会将* .dev添加到HSTS列表中...
似乎许多开发人员都需要将.dev后缀更改为另一个:(
现在,HSTS策略已包含在Safari的存储的网站数据中,您可以删除localhost数据来解决此问题。
command + ,
在地址栏中更改https://localhost
为http://localhost
,然后单击返回键。
localhost
,而且适用于任何域。请注意,要访问子域,您必须删除父域的data。即,如果您要访问http://some.subdomain.somehost.com
并重定向到https
,则必须somehost.com
在Manage Website Data
该页面上进行搜索并将其删除。
当您使用客户端证书访问localhost时,似乎Safari进入了这种疯狂行为。以我为例,我处理的项目之一需要此客户端设置,这完全破坏了无法在localhost上使用http的项目的开发。我发现的唯一解决方法是编辑/etc/hosts
并为localhost添加别名,如下所示
127.0.0.1 localhost
然后使用,我可以使用http:// localhost:3000访问端口3000上的项目,而无需Safari强制https连接。