我已将旧网站移至新服务器,客户端发现了一种非常奇怪的行为。
非常接近结束,我有这段代码:
if (!$this->cache) {
header('Expires: '.gmdate('d M Y H:i:s', 946684800).' GMT');
header('Cache-Control: no-cache');
header('Pragma: no-cache');
}
现在奇怪的是Cache-Control线无效。 数据包嗅探后我看到了:
Expires: 01 Jan 2000 00:00:00 GMT
Cache-Control: max-age=300, public
Pragma: no-cache
标题的顺序正是我设置它们的方式,但Cache-Control完全不同。我已经为我提到的缓存控制提示了我的代码,只有提到,另一个旨在强制缓存在不同的文件中,但它与我所看到的不同,所以它不能成为罪魁祸首。
有谁知道为什么Cache-Control正在改变?
答案 0 :(得分:0)
如果您正在使用会话,那么PHP可能会覆盖它们。请查看手册中的session_cache_limiter()
。
或者,您可以在致电session_start()
后尝试设置这些标题。
(编辑:我错过了“非常接近结束”,所以也许这不是你的问题。)
答案 1 :(得分:0)
我认为你正在运行Squid,你应该检查它的配置:
header_replace Cache-Control max-age=300, public