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

我正在尝试调试重定向工作方式的逻辑。但是,即使在我更改代码后,Google Chrome仍会记住重定向,即使重定向代码也是如此。

这使得排查非常困难。

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

评论

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

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

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

输入新的www.mywebsite /?someparam = somevalue对我有用

@JDIsaacks,您可以专门使用Chrome进行调试(即Chrome Canary)

#1 楼

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


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


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

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

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

或者,测试和开发在无痕模式下关闭浏览器后,缓存将刷新。

评论


最新版的chrome,此选项为“缓存的图片和文件”,而不是“清空缓存”

– Dan R
2014年8月7日在15:38

即使在隐身模式下,我也会不断重定向。

–盖亚
2014年9月21日在16:49

@Gaia是的,在Chrome隐身模式下似乎是问题所在。如果您只是在测试,则可能要使用Firefox。 Firefox私人浏览效果很好:)

–钱币
15年1月26日在14:19

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

–用户
15年3月19日在14:01

键盘快捷键是Ctrl + Shift + Delete。

– 0xcaff
15/12/26在22:37



#2 楼

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


打开“开发工具”面板(在Mac上为optioncommandi) ,或在Windows上为ctrlshifti)


并按住重新加载图标


将打开一个菜单



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


这是对这三个选项之间的区别的很好的解释。 > PS:为避免每次Chrome跟随重定向后都必须执行这些步骤:选中在DevTools中禁用缓存,并在DevTools打开时,Chrome将绕过重定向缓存(根据此答案)

评论


顺便说一句:这在​​Mac上不可用。

– Arjan
2015年8月4日在10:15

这并不总是删除缓存的重定向

– Claudiu Creanga
2015年9月10日下午13:48

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

– Percy
15-10-28在13:48

@Arjan在Mac上可用,请参见superuser.com/questions/304589/…

–盖亚
15年10月28日在19:24

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

– Carles Sala
17年2月11日在14:29

#3 楼

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

评论


是的,这有效。 example.com变成example.com?。我不是一堆最简单的

–fregante
2014年1月24日22:40



这是一个很棒的把戏。我假设您可以无限期使用?abc,?abc2等...

– brentonstrine
2014年5月12日20:36

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

– jwadsa​​ck
17年2月21日在19:02

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

– Mohammad Kermani
17年4月30日在12:34

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

– dhaupin
17年5月22日在17:16

#4 楼

与此相关的是一个“错误修复” Chromium错误,


这是预期的行为。

请注意:


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



评论


什么是“删除最后一个小时”。手段?怎么做?

–MikaëlMayer
2015年6月10日在21:03

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

– dbr
15年6月26日在13:16

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

–patricktokeeffe
18年2月4日在4:26

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

– Luciano Fantuzzi
18-2-25在19:21

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

–rox0r
18-2-27在17:53



#5 楼

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

评论


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

–user65130
2014年11月21日在17:08

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

– Claudiu Creanga
2015年9月10日下午13:47

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

–布赖恩
16年1月31日,下午1:26

不再起作用...可能在2014年起作用

–卢阁下。
16年9月1日在17:24

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

–迈克·高斯曼(Mike Gossmann)
16年9月1日在18:58

#6 楼

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

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


打开Chrome开发者工具

单击设置

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

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


评论


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

–Trendfischer
2015年10月6日,12:07

#7 楼

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

更新:不幸的是,从71版(2018年12月)开始,Google删除了内部功能。

评论


在Chrome 56上运作

– spencer.sm
17年2月9日,0:13

仍可在Chrome 67上使用

– SCO
18年9月19日在8:15

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

–用户
18/12/16在7:42



#8 楼

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

这可以工作,因为源浏览器不会自动遵循301重定向。

评论


在Chrome 25中不适用于我

–旋转
13年3月20日在23:52

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

–伊恩·格兰杰(Ian Grainger)
13年3月25日在11:12

@Ian如果在地址栏中输入view-source:www.example.com,该怎么办?这样可以让您刷新而无需重定向吗?

–马修·布莱克福德
13 Mar 26 '13 at 0:13

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

–伊恩·格兰杰(Ian Grainger)
13年3月26日在14:07

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

–fregante
2014年11月26日15:46

#9 楼

.dev域被迫在Chrome 63+上使用HTTPS
自Chrome 63自2017年12月起,所有以.dev(和.foo)结尾的域都被强制通过预加载的HTTP Strict Transport Security(HSTS)使用HTTPS标头。
此处有更多信息:https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

评论


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

–贾巴里
17年12月16日23:25

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

–bp。
18年1月25日在7:41

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

– Pavel Niedoba
19年6月3日在20:12



#10 楼

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

评论


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

–JaredThirsk
18年3月3日在21:45

#11 楼

如此处所述可能是由HSTS引起的。要解决此问题,我执行了以下操作。

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


评论


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

– Ruberoid
16年1月3日,17:46



#12 楼

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

#13 楼

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


评论


奇怪的是,该选项无济于事。我禁用了缓存,但是它仍然在网络选项卡301永久移动(来自磁盘缓存)中说。

– mgutt
17-10-25在13:34

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

– bshea
18年8月1日在15:13

#14 楼

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

FYI,我已经按照此答案中的说明检查了Disable cache

评论


这是关键答案,因为Windows使用了解析器缓存,而无需清除浏览器甚至卸载并重新加载浏览器都不会解决301重定向的问题,或者Windows解析器缓存中存储了错误的地址。这个答案做得很好,我希望人们首先阅读它,否则他们将浪费大量时间来寻找答案。

–克林顿
11月2日,22:02

#15 楼


转到chrome://settings/search#clear%20browsing%20data
单击“清除浏览数据”
检查“缓存的图像和文件”(如果需要,请取消选中其余部分)
单击“清除浏览数据”
>


#16 楼

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

评论


为什么要按住它而不是简单地按Ctrl + R?

–gronostaj
2015年10月1日在18:29

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

– Ryu_hayabusa
2015年10月7日13:02

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

–gronostaj
2015年10月7日14:06

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

– Ryu_hayabusa
15-10-10在18:44



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

– mgutt
17-10-25在13:28

#17 楼

如果您不想丢失整个缓存,并且重定向仍然停留在缓存中,则可以尝试访问该URL的view-source:版本。这为我刷新了相同URL的重定向缓存。

#18 楼

如果可以控制页面,并且不希望浏览器缓存页面,则正确的方法是添加以下标头:

Cache-Control: no-cache 


但是只是这样做由于浏览器仍在从缓存加载,因此无法立即运行;进行此更改后,请按照以下答案重新加载页面:
https://superuser.com/a/924748/100398