header("Cache-Control: max-age=25200");
上面我很确定仍然会检查更新的页面。 BTW如果有人好奇浏览器不能检查新页面的原因是因为网页很大。我不想每天都重新下载。
答案 0 :(得分:1)
你所拥有的并不是一个糟糕的开始,但你可以稍微改进一下,如下:
header("Cache-Control: max-age=2592000 public");
您可以在.htaccess中添加过期的http标头响应:
<IfModule mod_expires.c>
Header unset expires
ExpiresActive On
Header set Expires "Mon, 5 Aug 2013 20:00:00 GMT"
</IfModule>
如果您使用过期,请记住设置特定日期而不是基于访问权限的规则,因为这在动态生成内容中不起作用。这样做的缺点是你必须不时更新它。
当然,您也可以在php文件中设置一个月份的时间范围,这样您就不需要更新.htaccess了,而且总是有一个有效的时间段。
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 2592000));
您可以添加pragma缓存规则。许多现代客户不使用它,但许多移动应用程序和验证器使用它。
<FilesMatch "\.(php)$">
Header set Pragma "cache"
</FilesMatch>
许多客户端也会考虑etag标头,因此添加它很重要,我会在每个项目中使用它。你也可以在你的.htaccess中做到这一点。
FileETag All
最后,如果您的网站经常不更新,那么改善缓存和用户体验的最佳方法就是将您的php生成和html文件发送给客户端。这样,你也有expires标头按预期工作,你可以通过apache或php从服务器端使用压缩。
再见