如何让 Chrome 停止缓存重定向?

JD *_*cks 467 google-chrome redirection web-development

我正在开发一个正在使用的 Web 应用程序redirects(用于漂亮的 URL)。

我正在尝试以重定向工作的方式调试逻辑。然而,谷歌浏览器一直记住重定向,甚至在我更改代码后,以相同的方式重定向。

这使得故障排除变得非常困难。

例如,如果我重定向/this/that,则将我的代码更改为/this不再重定向。谷歌浏览器仍在重定向到/that. 就像重定向被缓存之类的。有没有办法关闭它?

ran*_*dom 352

谷歌浏览器会缓存你的 301 重定向。要解决此问题并保持选项卡打开,您只需要清除浏览器缓存。

铬菜单 铬菜单> 设置 > 显示高级设置... > 隐私 > 单击清除浏览数据...

无论您选择什么,请确保“缓存的图像和文件”是一个选中的选项。

然后单击清除浏览数据,您应该可以再次重新测试。

如果您刚刚遵循重定向,则只需删除过去一小时的数据。

或者,在隐身模式下测试和开发。浏览器关闭后会刷新缓存。

  • 即使在隐身模式下,我也不断被重定向。 (29认同)
  • 请注意,HTTP 301 是 **[Moved Permanently](https://en.wikipedia.org/wiki/HTTP_301)**,因此完全允许缓存响应。如果您不想缓存响应,请尝试 302 或 307。https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection (11认同)
  • 键盘快捷键是`Ctrl` + `Shift` + `Delete`。 (10认同)
  • 最新版本的 chrome,此选项将是“缓存图像和文件”而不是“清空缓存” (3认同)
  • @Gaia 是的,这似乎是 Chrome 隐身的问题。如果您只是进行测试,您可能需要为此使用 Firefox。Firefox 隐私浏览工作正常:) (2认同)

Gai*_*aia 200

这是在不清除所有浏览数据的情况下清除 Chrome 用于重定向的粘性内存的可靠方法(当前最佳答案使用的方法):

  1. 打开开发人员工具面板(optioncommandi在 Mac 或ctrlshiftiWindows 上)

  2. 单击并按住重新加载图标 在此处输入图片说明

  3. 将打开一个菜单

    在此处输入图片说明

  4. 从此菜单中选择第三个选项(“清空缓存和硬重新加载”)

这是对这 3 个选项的不同之处的极好解释。

PS:为了避免每次 Chrome 跟随重定向时都必须执行这些步骤:检查 DevTools 中的禁用缓存,当 DevTools 打开时,Chrome 将绕过重定向缓存(根据这个答案

  • 它在 Mac 上可用,但菜单仅在您打开开发工具时可用。我认为这在 Windows 上可能是一样的。 (14认同)
  • 这并不总是删除缓存的重定向 (7认同)
  • Mac OS X,优胜美地。与 http 到 https 永久重定向的斗争,只有这个选项有效。所有其他的,包括“禁用缓存(DevTools 打开时)”,都没有区别。 (5认同)
  • 与 2019 年 6 月一样,这是唯一对我有用的方法。谢谢 :) (3认同)
  • 顺便说一句:这在​​ Mac 上不可用。 (2认同)
  • @Arjan 它在 Mac 上可用,请参阅 http://superuser.com/questions/304589/how-can-i-make-chrome-stop-caching-redirects/869739?noredirect=1#comment1369915_869739 (2认同)
  • 在已经重定向您的页面上按住刷新按钮有点困难...... (2认同)

小智 127

这不是一个完美的解决方案,但我能够通过传递虚假查询字符串或向现有查询字符串添加虚假参数来阻止 Chrome 使用缓存的重定向。例如,?在没有 q 查询字符串的 URL 末尾添加一个简单的内容在 Max OS X 上的 Chrome 30 上对我有用。

  • 是的,这有效。`example.com` 变成了 `example.com?`。我不是这群人中最简单的 (10认同)
  • 这是一个很棒的技巧。我假设您可以无限期地使用它`?abc`、`?abc2` 等... (3认同)
  • 这对我不起作用。即使使用不同的端口 (:8080),它也会更改为 https,这似乎是 Chrome 的错误。 (2认同)

dbr*_*dbr 94

有一个关于这个“wontfix”Chromium 错误

这是预期的行为。

注意:

  1. 您可以将缓存控制标头添加到 301,我们将遵循它们(到期等)
  2. 如果有问题的资源是子资源,重新加载页面将导致重定向与服务器重新验证。
  3. 您不必丢失整个缓存。只需按照重定向并删除最后一个小时即可。


小智 74

如果您在 DevTools 中启用了“禁用缓存(DevTools 打开时)”选项,那么只需打开 DevTools 就足以绕过重定向缓存,而不会经常丢弃您的会话。

  • 注意:如果 devTools 是打开的,有一种快速删除缓存的方法:右键单击刷新按钮并选择完全重新加载`;)` (9认同)
  • 这并不总是有效。我删除了所有缓存并仍在重定向。只有在隐身模式下它才能工作并且您会获得一致的行为 (6认同)
  • 不再工作......可能在2014年工作 (4认同)
  • 为什么这不是最佳解决方案?相比之下,其他的就惨了! (2认同)

Zan*_*non 25

Chrome 会缓存 HTTP 重定向,并在重定向已更改时停止检查站点。这可能令人沮丧,因为无法使用最简单的修复方法(访问站点并强制刷新),因为重定向将在您访问链接之前发生。这是一个无法解决的问题

要解决此问题,您可以按照此处的说明清除浏览数据,也可以按照以下步骤操作以避免丢失历史记录。

  1. 打开 Chrome 开发者工具 开发工具

  2. 点击设置 设置

  3. 检查禁用缓存(当 DevTools 打开时) 禁用

  4. 访问您想要的站点,缓存问题将得到解决。

  • 您也会在网络选项卡上找到“禁用缓存”选项,它是相同的选项。对于调试重定向,我也建议使用“保留日志”。 (3认同)

McG*_*V10 17

转到 chrome://net-internals 并在最右侧打开下拉菜单并选择“清除缓存”。从版本 48 开始,这是唯一对我清除缓存的 301(永久重定向)有用的方法。

更新:不幸的是,从 71 版(2018 年 12 月)起,Google 已经删除了 net-internals 功能。

  • 不适用于 Chrome 71。网络内部事件查看器和相关功能已被删除。 (3认同)

小智 9

要清除 Chrome 中单个页面的重定向缓存,请查看源代码并执行硬刷新(CTRL + SHIFT + R)

这是因为源浏览器不会自动遵循 301 重定向。

  • 在 Chrome 25 中对我不起作用 (4认同)
  • 如果重定向是针对 _all_ 页面的,这将不起作用。我有一个www -> 没有 www。重定向 - 所以重定向是在第一次点击时,所以我无法刷新任何东西。每次我尝试去刷新页面时都会出现 301 - 那么为时已晚! (3认同)
  • 这仅适用于 javascript 和元标记重定向。仍然遵循 HTTP 重定向 (2认同)

Luc*_*nte 8

.dev 域被迫在 Chrome 63+ 上使用 HTTPS

自 2017 年 12 月推出的 Chrome 63 以来,所有以 .dev(和 .foo)结尾的域都被迫通过预加载的 HTTP 严格传输安全 (HSTS) 标头使用 HTTPS。

更多相关信息:https : //ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


小智 6

在 Chrome 或 Firefox 中,您可以通过键入“view-source:redirect.yoursite.com”并按 Enter 来刷新重定向。然后,刷新该页面。现在,这应该会强制 Chrome 或 Firefox 刷新重定向。


小智 6

如此处所述可能是由 HSTS 引起的

为了解决这个问题,我做了以下工作。

在 Chrome 地址栏中键入“chrome://net-internals/#hsts” 在页面的最底部是 QUERY domain 文本框 - 验证浏览器是否知道您的站点(例如 localhost) 如果是,请删除 localhost域使用上面的文本框你的网站现在应该使用普通的旧 HTTP


小智 5

出于开发目的,我建议您在 Chrome 中打开 DevTools 设置并选中“禁用缓存”。然后 30x 重定向不会被缓存,您可以调试 .htaccess 文件等等! 在此输入图像描述