我怎样才能设置Expires头在PHP + Apache的? 我目前使用的auto_prepend服务gzip压缩的资源,但我也想最大限度的HTTP缓存。
如何设置这些吗?
我怎样才能设置Expires头在PHP + Apache的? 我目前使用的auto_prepend服务gzip压缩的资源,但我也想最大限度的HTTP缓存。
如何设置这些吗?
有两种方法可以做到这一点。 首先是指定你的PHP代码中的头。 如果你想以编程方式调整到期时间这是伟大的。 例如维基可以设置一个更长的时间未编辑经常是在页过期时间。
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服务器被配置为允许您查看通过/服务器信息页面信息。 如果你的服务器有两个指定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
这Apache模块可能会有所帮助: http://httpd.apache.org/docs/2.0/mod/mod_expires.html
你有没有尝试类似?
<?php
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>