我正在调试一个HTTP 301永久重定向的问题。经过快速测试,Safari似乎在重新启动时清除了它的301缓存,但Firefox却没有。

IE、Chrome、Firefox和Safari什么时候清空它们的301缓存?

For example, if I want to redirect 1.example to 2.example, but I accidentally set it to redirect to 3.example, that is a problem. I can correct the mistake, but anyone who has visited 1.example in the meantime will have cached the incorrect redirect to 3.example, and so they will not be able to reach either 1.example or 2.example until their cache is cleared. Upon investigation, I find that there were no Cache-Control and Expires headers set. The headers for the incorrect 301 response would have been like this:

HTTP/1.1 301 Moved Permanently
Date: Wed, 27 Feb 2013 12:05:53 GMT
Server: Apache/2.2.21 (Unix) DAV/2 PHP/5.3.8
X-Powered-By: PHP/5.3.8
Location: http://3.example/
Content-Type: text/html

我自己的测试表明:

IE7, IE8, Android 2.3.4完全不缓存。 Firefox 18.0.2、Safari 5.1.7(适用于Windows 7)和Opera 12.14都有缓存,并在重新启动浏览器时清除缓存。 IE10和Chrome 25缓存,但不清楚浏览器重启,所以他们什么时候会清除?


当前回答

确认! !让用户向受影响的url提交post请求,缓存的重定向将被遗忘。

一个快速的取胜方法是在浏览器控制台输入这个:

fetch (example.com/affected/link,{方法:“post”})不要犹豫 (() => {})

如果您了解受影响的浏览器(特别是在开发过程中),则非常有用。

或者,如果您可以访问之前的301重定向页面,那么您可以将此脚本添加到页面中,无论何时访问它,缓存的301都将被遗忘。

其他回答

一个帮助那些迫切想摆脱重定向缓存的人的答案:

Chrome无限缓存301重定向(在本地磁盘缓存中)。清除缓存。

打开你的开发工具(按F12) 在“网络”选项卡上选中“禁用缓存”复选框 保持DevTools打开并重新加载页面(按F5)

当一切正常时,您可以取消“禁用缓存”,一切将继续按预期工作。

确认! !让用户向受影响的url提交post请求,缓存的重定向将被遗忘。

一个快速的取胜方法是在浏览器控制台输入这个:

fetch (example.com/affected/link,{方法:“post”})不要犹豫 (() => {})

如果您了解受影响的浏览器(特别是在开发过程中),则非常有用。

或者,如果您可以访问之前的301重定向页面,那么您可以将此脚本添加到页面中,无论何时访问它,缓存的301都将被遗忘。

我将发布帮助我的答案:

转到url:

chrome://settings/clearBrowserData

它应该调用弹出窗口,然后..

仅选择:缓存的图像和文件。 选择时间框:从开始

在最新的谷歌Chrome版本79上,可以使用Chrome://net-internals 并从左侧面板选择DNS,然后点击清除主机缓存按钮

我有一个简单的解决方案,适用于所有主要的浏览器(最新版本),包括IE, Chrome和FF

Ctrl + Shift + Del - Chrome浏览器:选择“浏览历史记录”和“缓存…” IE:我离开默认选项“临时互联网文件和网站文件”,“Cookies和网站数据”,“历史” FF:“浏览和下载历史”,“缓存” 点击“删除” 关闭并重新打开浏览器。应该可以