2011-11-15 60 views
1

这不是第一次,我坚持这个问题。 每次我使用301重定向时,浏览器都会缓存它。当我在我的应用程序中更改重定向时,我必须清除浏览器缓存。如何避免浏览器重定向缓存

这是不是很受欢迎的网站,你会明白。 有没有解决方案来避免这种缓存?

目前我从我的客户那里得到了一个新的重定向列表。在我的.htaccess中,我替换了旧的,但它不起作用。

当我清除我的浏览器缓存时,它似乎工作propper。

任何解决方案?非常感谢!

回答

15

引述HTTP specification on the 301 status code

301永久移动

请求的资源已被分配了一个新的永久性URI,该资源的任何 将来参考应该使用返回 URI之一。具有链接编辑功能的客户端应该自动将 的引用重新链接到服务器在可能的情况下返回的一个或多个新的 引用。除非另有说明,否则此响应为可缓存的 。

因此,浏览器缓存重定向的URI的事实不应该是一个惊喜,因为它按照指定的方式完成。

为了解决这个问题,大多数网站使用302(也可以使用307)。

+0

谢谢!这是第一次作为永久性的,而不是暂时的重定向。当我阅读301规范时,我明白它的含义,答案很清楚:你不能这样做,因为301并不是暂时的,而是永久的。 –

1

这里有一个来自HTTP/1.1规范多了一个相关的报价(除@Bruno的答案):

13.4响应可缓存

...

收到响应状态码为200,203,206,300,301或 410可由高速缓存存储并用于回复随后的 请求,除非有缓存控制 指令禁止缓存。

https://tools.ietf.org/html/rfc2616#section-13.4