Apache - 如何在调试htaccess时禁用浏览器缓存

时间:2011-10-12 17:21:51

标签: apache .htaccess firefox caching

我正在尝试调试.htaccess文件。 FireFox保持缓存重定向,我无法绕过它们。通常我会按Ctrl + F5,但因为它已经将我重定向到另一个页面,这只是刷新我发送的页面而不是我输入的URL。有没有办法强制刷新网址?

以下是一个例子:

  • 将example.com/hi重定向到example.com/hello,在FireFox中测试并运行
  • 从.htaccess
  • 中删除此行
  • 在FireFox中键入example.com/hi,它仍会重定向到example.com/hello
  • 在Chrome中输入example.com/hi,它不会重定向

这就是为什么我认为这是一个浏览器缓存问题,而不是服务器缓存。

编辑:这似乎是FireFox特有的,快速解决方案是使用Chrome代替。缓存在一小时后过期,这在尝试调试时太长了。

10 个答案:

答案 0 :(得分:14)

如果您使用的是RewriteRule,只需使用R而不是R = 301。出于其他目的,您必须在更改重定向时清除浏览器缓存。 (如果你不知道如何清除浏览器缓存,谷歌搜索方法应该提供一个快速简单的答案 - 或者随意评论,我会帮助你。)

简单地说,尽可能避免使用301s,直到您的重定向正常工作为止。如果您无法避免,请准备好定期清除浏览器缓存。

答案 1 :(得分:10)

清除Firefox的网络缓存对我有用。也适用于301重定向。

偏好/选项>高级>网络>缓存的Web内容。

Clear network cache in Firefox preferences

请参阅https://support.mozilla.org/en-US/kb/how-clear-firefox-cache

答案 2 :(得分:5)

在Google Chrome中,使用以下方式在“隐身”模式下打开新标签页

CTRL-SHIFT-N

非常适合调试。

答案 3 :(得分:5)

强制在 Google Chrome 中强制清除htaccess / redirect缓存:

  1. 转到设置>高级>隐私>清除浏览数据
  2. 选择“缓存的图像和文件”
  3. 点击清除浏览数据
  4. 您的页面现在应该加载新的htaccess设置。

答案 4 :(得分:3)

我认为值得在这里权衡,以防万一我的经验可以帮助任何人。我经常在本地机器上的开发和生产分支之间来回切换。开发分支是我的本地环境,生产分支是我的远程服务器。两种环境之间的唯一区别是.htaccess文件。我的远程服务器需要重写规则,以防有人在URL之前没有输入“www”:

# If www is missing from the beginning of the URL
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

但是,由于URL结构,此重写规则不适用于我的本地环境。所以在我的本地版本的.htaccess中我注释掉了重写规则。

我注意到Chrome似乎并没有到我的本地服务器每次都获取最新的.htaccess文件。这显然是缓存重写,因为当我从我的生产分支切换到我的开发分支时,我得到的东西看起来像这样:

www.www-local.myurl.local

如果我使用Safari,我会得到正确的网址:

www-local.myurl.local

要解决此Chrome问题,我转到了开发人员工具>设置>一般>并选中“禁用缓存(当DevTools打开时)”

选中此选项后,我只需要打开Dev Tools并重新加载即可获得当前的.htaccess。

答案 5 :(得分:2)

在Firefox中按选项命令I 打开开发人员工具栏。然后点击设置(它是一个小小的齿轮图标),在高级设置下面勾选禁用HTTP缓存(工具箱打开时)。这对我有用。

答案 6 :(得分:0)

在尝试刷新我的缓存无数次后,我决定清除我的网站的cookie,我不知道为什么或如何,但这清除了我。也许它是Magento特有的东西,但它可能更为通用。

答案 7 :(得分:0)

在Google Chrome浏览器中,打开“开发者工具栏”。然后单击“设置”(这是一个3点图标),然后在“网络”部分下,选中“禁用缓存(打开DevTools时)”。

答案 8 :(得分:0)

在Chrome中,您可以在Developer Tools面板中禁用浏览器缓存

Command+Option+C (Mac) or Control+Shift+C (Windows, Linux, Chrome OS).

Network标签中,您可以找到Disable cache复选框。
它仅在“开发人员工具”面板打开时起作用。 enter image description here

答案 9 :(得分:-1)

好吧,您可以使用Firefox插件清除缓存清除您的htaccess缓存。比任何CTRL + R都好。

https://addons.mozilla.org/en-US/firefox/addon/clear-cache-button/