我正在尝试缓存一个在一个站点上成功的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文件。
答案 0 :(得分:1)
您是否尝试过其他浏览器?至少可以说,Firefox的缓存是一堆热闹的 * 。此外,.htaccess不是唯一的事情 - Apache配置很可能需要在脚本所在目录的AllowOverride指令中进行一些调整。
另外,尝试使用Wireshark来观察通过网络发送的内容 - 发送了哪些标头以及真正收到了哪些标头?
答案 1 :(得分:-1)
我想您应该修复此Last-modified:
参数。