我试图缓存一个PHP文件,这是成功的一个网站,但当我在另一个网站上实现的代码没有得到缓存。我用Firebug检查了一下,我得到了一个200 OK
状态,这意味着每次页面刷新时它都会从服务器下载它。
$now = time();
$generatedAt = gmdate('D, d M Y H:i:s T', $now);
$lastModified = gmdate('D, d M Y 00:00:00 T', $now);
$expiresAt = gmdate('D, d M Y H:i:s T', strtotime($lastModified) + 8035200);
$maxAge = strtotime($expiresAt) - strtotime($generatedAt);
header('Last-modified: '.$lastModified);
header('Cache-control: max-age='.$maxAge);
额外信息:它是从我的其他网站复制的,我得到一个304 NOT MODIFIED
状态,这意味着它确实被缓存。
这段代码位于文件的顶部,没有回显或输出,这意味着还没有发送头文件。
我的。htaccess文件配置正确,我没有指定它不应该缓存PHP文件
您尝试过其他浏览器吗?至少可以说,Firefox的缓存是一堆热气腾腾的*。此外,.htaccess并不是唯一的东西——Apache的配置很可能需要对脚本所在目录的AllowOverride指令进行一些调整。
另外,尝试使用Wireshark来观察网络上的内容-发送了哪些报头,真正接收了哪些报头?
我想你应该修复这个Last-modified:
参数