0

我已将旧站点移至新服务器,客户端发现了一个非常奇怪的行为。

非常接近尾声,我有这段代码:

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 正在改变?

4

2 回答 2

0

如果您正在使用会话,PHP 可能会覆盖它们。看看session_cache_limiter()手册中的。

或者,您可以在调用session_start().

(编辑:我错过了关于“非常接近结束”的部分,所以也许这不是你的问题。)

于 2010-09-09T05:53:55.183 回答
0

我认为你正在运行 Squid,你应该检查它的配置:

header_replace Cache-Control max-age=300, public

于 2012-06-30T18:18:26.800 回答