301 和 301 http 重定向是不是可以使用 expires 标头进行缓存?

Posted

技术标签:

【中文标题】301 和 301 http 重定向是不是可以使用 expires 标头进行缓存?【英文标题】:Can 301 and 301 http redirects be cached with an expires header?301 和 301 http 重定向是否可以使用 expires 标头进行缓存? 【发布时间】:2011-05-16 13:17:08 【问题描述】:

我已经运行了几个测试,但无法缓存 301 或 302 重定向。在我的情况下,我在页面上有大量头像图标,我希望将其重定向到 gravatar 和/或 facebook 图标,并且我希望缓存重定向,最好是在一个中间时间段内,比如一周。

示例标题:


HTTP/1.1 301 Moved Permanently
Date: Sat, 27 Nov 2010 12:13:04 GMT
Server: Apache/2.2.3 (Red Hat)
Location: http://www.gravatar.com/avatar/552e3422df95ab611ce0d8d5b5d66c67?s=50&d=identicon
Cache-Control: max-age=414000
Expires: Thu, 02 Dec 2010 07:13:04 GMT
Content-Length: 330
Content-Type: text/html; charset=iso-8859-1

那么这可能吗?如果可以,我做错了什么?

【问题讨论】:

【参考方案1】:

我理解您的意图,但我怀疑浏览器是否缓存了 301 状态响应(已确认 here)。阅读您的答案,您可以控制 HTML 内容。为什么不直接更改 HTML 响应中的图像链接?因此,您已经“迁移”了源文档中的链接,而不是使用 301,浏览器直接点击 200 链接。

【讨论】:

FF 和 Chrome 可以,如您链接的评论中所述。 证实了亚当的观察——他们确实做到了。调试 .htaccess 规则时要牢记... 他们当然会缓存 301。这就是 301 背后的想法(永久!)。在 FF 和 Chrome 无限制的情况下。如果是 Safari,我认为直到浏览器重新启动。

以上是关于301 和 301 http 重定向是不是可以使用 expires 标头进行缓存?的主要内容,如果未能解决你的问题,请参考以下文章

使用 301 或 303 将 http 重定向到 https

在codeigniter中打开SSL认证网站时,301不会在http上重定向而不是重定向302

.htaccess 中的 301 重定向错误,显示“Bots Get Naked Version”而不是重定向

如何撤消 301 重定向?

Win2008 r2 iis7/iis7.5系统下HTTP重定向(301重定向)图文方法

Java 中的 URL 重定向返回 302 而不是 301