Yar*_*rin 14 redirect caching no-cache http-status-code-301 http-status-code-307
这是使用301/303/307重定向到动态短网址的后续问题,我尝试确定在目标网址频繁更改时实施短网址重定向的最佳方法.
虽然看起来301和307重定向都以相同的方式执行,但我关注的问题是301重定向缓存(如此处所述) - 是避免使用307重定向的最佳方法(我假设307重定向永远不会缓存?),或显式发送无缓存标头("缓存控制:无缓存,必须重新验证")?
Mau*_*fer 19
不要试图避免301缓存.如果您不希望任何用户代理缓存重定向,则只需不使用301重定向.换句话说,301缓存将保留,从语义上讲,它是永久重定向,因此如果您计划更改目标URL,则301不是正确的状态代码.另一方面,默认情况下不会缓存307个响应.
Tim*_*nen 10
在您需要301重定向带来的行为的情况下,例如浏览器书签的更新和google bot中URL的更改,但同时想要跟踪重定向或执行其他类型的功能,您始终可以添加缓存控件标题为"无缓存"
HTTP/1.0 301 Moved Permanently
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Location: http://example.com
Run Code Online (Sandbox Code Playgroud)
在PHP中它看起来像这样:
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Location:'.$url, true, 301);
Run Code Online (Sandbox Code Playgroud)
相关:https: //stackoverflow.com/a/19003320/175071
| 归档时间: |
|
| 查看次数: |
24975 次 |
| 最近记录: |