Firefox 5'缓存'301重定向

时间:2011-08-08 09:37:05

标签: firefox

有没有办法禁用这个'功能'?

例如,如果向http://localhost/foo.html发出了我已指定为“301”到根地址的请求,则对foo.html的所有后续请求都会完全绕过Web服务器,而ffox 5将检查它是否为缓存,读取此网址先前为“301”并重定向,甚至没有检查更改。

如果我已经从301'停止foo.html,我必须清除firefox的缓存,以便“修复”这种情况发生。

Chrome,IE和以前版本的Firefox不会这样做。

9 个答案:

答案 0 :(得分:109)

在Firefox中,如果你有“web developer”工具栏插件。您可以点击停用 - >禁用缓存 - >每次检查新版本的页面。然后重新加载URL,它将刷新您的缓存。因此,您无需清除完整缓存。

从cptstubing06的评论中,以下内容可以帮助清除缓存:

  1. 键入 Ctrl + l 将光标放在位置栏上。
  2. 输入about:config以打开configuration settings
  3. 确认任何警告。
  4. 键入browser.cache,然后按 Enter 过滤设置。
  5. 双击browser.cache.check_doc_frequency
  6. 将值从3更改为1
  7. 点击OK
  8. 重新访问过时的缓存301页面。
  9. 完成后将频率重置为3。
  10. Firefox现在应该重定向到新的301页面,不再从缓存中获取重定向的页面。

答案 1 :(得分:44)

301只是一个普通的可缓存响应代码。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2说:

This response is cacheable unless indicated otherwise. 

因此,如果您不希望它被缓存,您的服务器需要通过用于控制缓存行为的普通标头来指示。

您也可以clear the cache manually

答案 2 :(得分:24)

我刚遇到这个问题,对我来说这是两个问题。

此特定域名通过Cloudflare路由,因此我必须将其设置为开发模式。我认为Cloudflare正在缓存301重定向,因此它不必将请求发送到服务器。此步骤可能不适用于您。

然后,我只需通过工具 - >清除我的Firefox缓存(版本11)。选项,单击右上角的“高级”按钮,选择“网络”选项卡,然后单击“缓存的Web内容”部分下的“立即清除”。请注意我的缓存已设置为0,但我仍然需要单击“立即清除”按钮以使重定向停止缓存。

我有兴趣知道是否有其他人可以验证这一点。

答案 3 :(得分:9)

我找到了一个适用于Firefox 26的解决方案,在过时的重定向缓存超过一个月并重新启动之后。

  1. 在“历史记录”菜单上,选择“显示所有历史记录”。
  2. 在搜索中,键入包含缓存重定向问题的域,以显示结果列表。
  3. 右键点击其中一个,然后选择“忘记此网站”。
  4. 将仅从缓存中删除该网站的所有缓存网页,图片和重定向。这使您可以清除开发网站的重定向,而无需清除其余的缓存。

    作为旁注,我认为Firefox最多只能缓存重定向几天。将它们缓存超过一个月可能会使一个简单的错误成为一个大问题。

答案 4 :(得分:5)

一个快速解决方法是使用私人浏览器窗口。

答案 5 :(得分:5)

最近版本的Firefox内置的开发人员工具有一个解决方案。首先,在开启开发窗格时关闭缓存:

  • 在任何页面上,点击 F12 以显示开发者工具
  • 在最右侧,点击齿轮图标“工具箱选项”
  • Advanced Settings下,选中Disable Cache (when toolbox is open)
  • 选项

现在,只要您想强制刷新缓存页面,就可以在打开F12开发工具箱的情况下加载/刷新页面。 Firefox将绕过缓存并从服务器获取新数据。

我更喜欢这种方法,因为它不会改变浏览器对“正常”非调试浏览的行为方式,也不会有忘记将全局设置恢复为原始值的风险。

在Firefox 39中验证

答案 6 :(得分:3)

301表示永久移动。因此,我认为缓存响应是合理的。

您是否尝试过设置cache-controlexpires标头?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

答案 7 :(得分:2)

在Firefox版本38.0中

Menu -> Edit -> Preferences -> Advanced -> Network -> Clear Now

为我工作。

答案 8 :(得分:1)

301表示永久移动并且可以缓存,因此我认为这是浏览器的“正确”行为。您应该使用303 See Other