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


415

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

我正在尝试以重定向的方式调试逻辑。但是,即使我更改了代码,Google Chrome仍会记住重定向,并且重定向的方式相同。

这使得很难进行故障排除。

例如,如果我重定向/this/that,然后将代码更改为/this不再重定向。Google Chrome浏览器仍重定向到/that。就像重定向被缓存一样。有没有办法关闭此功能?


重新启动时是否仍然会发生这种情况?重新启动会话后,它应该停止
随机

1
@random,重启chrome似乎可以解决问题。但是,通常我会打开很多窗口(例如:文档,数据库连接,教程,我正在处理的页面等)。如果我要进行故障排除,则可能需要进行几次尝试才能弄清楚发生了什么。我真的不认为必须一直关闭所有窗户才是理想的选择。谢谢。
JD Isaacks 2011年

2
解决方法:在测试过程中使用302(临时)重定向,并在完成后切换到301(永久)。(注意:某些浏览器(Firefox)从http转到同一页面的https版本时,甚至会缓存302个重定向。)
TRiG 2013年

1
www.mywebsite/?someparam=somevalue为我输入新作品
Mustafa

1
@JDIsaacks,您可以专门使用Chrome进行调试(例如Chrome Canary)
athosbr99 2015年

Answers:


328

Google Chrome浏览器将缓存您的301重定向。要解决此问题并使标签保持打开状态,您只需要清除浏览器缓存即可。

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

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

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

如果您刚刚按照重定向进行操作,则只需要删除过去一小时的数据即可。

或者,以隐身模式进行测试和开发。关闭浏览器后,将刷新缓存。


3
最新版的chrome,此选项将是“缓存的图像和文件”,而不是“清空缓存”
Dan R

23
即使在隐身模式下,我也会不断重定向。
盖亚2014年

2
@Gaia是的,这似乎是Chrome隐身模式的问题。如果您只是测试,则可能要使用Firefox。Firefox私人浏览正常工作:)
chhantyal,2015年

10
请注意,HTTP 301是永久移动的,因此完全可以缓存响应。如果您不希望缓存响应,请尝试302或307。en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
CVn 2015年

7
键盘快捷键是Ctrl+ Shift+ Delete
0xcaff 2015年

151

这是清除Chrome粘性存储器以进行重定向而不清除所有浏览数据的可靠方法(当前最佳答案所使用的方法):

  1. 打开“ 开发者工具”面板(optioncommandi在Mac或ctrlshiftiWindows上)

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

  3. 将打开一个菜单

    在此处输入图片说明

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

这是对这三个选项有何不同的很好的解释。

PS:为避免每次Chrome跟随重定向后都必须执行这些步骤:请选中在DevTools中禁用缓存,并且在DevTools打开时,Chrome将绕过重定向缓存(根据此答案


1
顺便说一句:这在​​Mac上不可用。
Arjan 2015年

5
这并不总是删除缓存的重定向
Claudiu Creanga 2015年

7
它在Mac上可用,但是只有在打开开发工具的情况下菜单才可用。我认为这在Windows上可能是相同的。
珀西

1
@Arjan在Mac上可用,请参阅superuser.com/questions/304589/…–
Gaia

4
Mac OS X,优胜美地。使用http到https永久重定向进行战斗,只有此选项有效。其他所有内容,包括“禁用缓存(打开DevTools时)”,都没有影响。
卡莱斯·萨拉

115

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


10
是的,这有效。example.com成为example.com?。我不是最轻松的一群
fregante

2
这是一个很棒的把戏。我认为您可以无限期地使用它?abc?abc2等等...
brentonstrine 2014年

2
这对我不起作用。即使使用其他端口(:8080),它也更改为https,这似乎是Chrome错误。
jwadsa​​ck '17

我已经在做同样的事情,但是它并不总是能正常工作,有时我需要按ctrl + shift + r(ctrl + f5)来获取网页的新版本或页面中包含的部分页面
M98

如果存在通配符缓存301,则此操作可能不起作用,因为它的“记住”功能可在TLD之后转发所有内容。
dhaupin '17

92

与此相关的是一个“ wontfix” Chromium错误

那是预期的行为。

注意:

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

什么是“删除最后一个小时”。手段?怎么做?
米凯尔·梅耶

1
@MikaëlMayer单击“历史记录>清除浏览数据”时,您可以选择一个时间范围以删除数据(“过去的小时”,“过去的一周”等)
dbr 2015年

没有..!清除网站的浏览数据不会删除301重定向行为。无论如何
不在

清除“ 1小时”可以使您退出所有Google产品和帐户。多么好的建议……
Luciano Fantuzzi

>您不必丢失整个缓存。只需按照重定向操作并删除最后一个小时即可。这仍然比“删除最后一个重定向”更糟糕,后者是他们不会修复的功能。
rox0r

66

如果您在DevTools中启用了“禁用缓存(打开DevTools时)”选项,那么只需打开DevTools就可以绕过重定向缓存,而无需不断地放弃会话。


9
注意:如果devTools已打开,则有一种删除缓存的快速方法:单击刷新按钮并单击鼠标右键,然后选择完全重载;)
user65130 2014年

5
这并不总是有效。我删除了所有缓存并仍在重定向。仅在隐身模式下它有效,您才能获得一致的行为
Claudiu Creanga 2015年

2
为什么这不是最佳解决方案?相比之下,其他人都太糟糕了!
布赖恩

4
不再工作了……大概在2014
卢勋爵。

@LordLoh。我刚刚在最新版本的Chrome上进行了尝试,它的工作原理完全符合预期。关闭devtools后,将缓存重定向。在工具打开的情况下重新加载页面不会重定向。
Mike Gossmann '16

20

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

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

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

  2. 点击设置 设定

  3. 选中禁用缓存(在打开DevTools时) 禁用

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


2
您也可以在网络标签上找到“禁用缓存”选项,它是相同的选项。对于调试重定向,我建议也使用“保留日志”。
Trendfischer 2015年

15

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

更新:不幸的是,自版本71(2018年12月)起,Google已删除了内部网络功能。


1
适用于Chrome 56
spencer.sm

仍可在Chrome 67
SCO

无法在Chrome 71上使用。网络内部事件查看器和相关功能已删除。
userlond

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/


这肯定是我的罪魁祸首!我花了HOURS来弄清楚到底是怎么回事。感谢您发布!
Jabari

该答案需要更多票。发问者可能不是问题,但对于许多开发人员而言,在搜索结果中找到此答案将是问题。
bp。

神!谁会想到这样一个绝妙的主意!
Pavel Niedoba

7

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

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


4
没有为我在Chrome 25的工作
swrobel

3
如果重定向适用于所有页面,则此方法不起作用。我有一个www。->没有www。重定向-重定向位于第一个匹配项上,因此我无法刷新任何内容。每次我尝试转到该页面刷新时,都会遵循301-太晚了!
伊恩·格兰杰

1
@Ian如果您在地址栏中输入view-source:www.example.com怎么办?这样可以让您刷新而无需重定向吗?
马修·布莱克福德2013年

1
@MatthewBlackford AFAICT也是一样,我实际上获得了重定向页面的来源。尽管TBH,但不确定我的测试是否很好。我已删除浏览历史记录以“解决”此问题。
伊恩·格兰杰

2
这仅适用于javascript和metatag重定向。仍然遵循HTTP重定向
Fregante

6

如上所述这里可以通过HSTS引起

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

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


1
嘿,谢谢。这确实有助于突然的https重定向缓存。
Ruberoid

5

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


这是唯一对我有用的答案。
JaredThirsk

4

如果您只想检查重定向是否按预期工作,则使用wget之类的命令行工具或类似工具可能会更容易。您可以检查响应头,并且不缓存重定向。


3

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


奇怪的是,该选项无济于事。我禁用了缓存,但它仍在“网络”选项卡中显示301 Moved Permanently (from disk cache)
mgutt

这与打开“网络”选项卡时单击“禁用缓存”完全相同。不-不清除重定向。
bshea '18年

1
  1. chrome://settings/search#clear%20browsing%20data

  2. 点击“清除浏览数据”

  3. 选中“缓存的图像和文件”(如果需要,请取消选中其余部分)

  4. 点击“清除浏览数据”

在此处输入图片说明


1

最简单的方法,硬刷新。按住Ctrl+ R几秒钟。这将清除重定向以及静态资源。


为什么不按住它就按住它Ctrl+R呢?
gronostaj

@gronostaj我的回答不是简单明了吗?。如果没有保留,那将只是正常的刷新。不会清除缓存的资源或重定向。
Ryu_hayabusa 2015年

按住就像多次按下一样。打开记事本并按住R,将出现多个Rs。这是完全一样的,但是带有Ctrl。按住Ctrl+ R相当于每秒将其按下数十次,持续几秒钟。那不是很聪明,它滥用了内置的刷新机制,并且依赖于未记录的行为。
gronostaj 2015年

@gronostaj是的,这是未记录的行为。接受的答案对我不起作用。这就是为什么我在这里分享它的原因。我看不到其他任何方法来清除缓存的重定向。如果您知道其他方法,请随时分享。
Ryu_hayabusa 2015年

尝试过并且不起作用(在整个域上301重定向)。
mgutt


0

我尝试了此页面上的所有答案,但在我在Windows命令行窗口上运行flushdns之前,没有一个起作用。

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

仅供参考,我已经Disable cache按照答案中的说明进行了检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.