如何在PHP + Apache中设置到期标头?我目前正在使用auto_prepend服务压缩的资源,但我也想最大化HTTP缓存。
我该如何设置?
有两种方法可以做到这一点。首先是在您的php代码中指定标头。如果您要以编程方式调整到期时间,那就太好了。例如,Wiki可以为不经常编辑的页面设置更长的过期时间。
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60))); // 1 hour
您的第二个选择是创建一个 .htaccess 文件或修改您的httpd配置。在共享托管环境中,修改.htaccess文件非常普遍。为此,您需要知道您的服务器是否支持 mod_expires 和 / 或 mod_headers 。最简单的方法就是反复试验,但是将某些Apache服务器配置为允许您通过/ server- info页面查看此信息。如果您的服务器同时具有mod_expires和mod_headers,并且您想在静态资源上设置到期时间,请尝试将其放入.htaccess文件中:
# Turn on Expires and set default to 0 ExpiresActive On ExpiresDefault A0 # Set up caching on media files for 1 year (forever?) <FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$"> ExpiresDefault A29030400 Header append Cache-Control "public" </FilesMatch>
有关其他组合和更多示例,请参见:http : //www.askapache.com/htaccess/speed-up- your-site-with-caching-and-cache- control.html