设置HTTP过期使用PHP和Apache头设置HTTP过期使用PHP和Apache头(Setup H

2019-05-13 17:13发布

我怎样才能设置Expires头在PHP + Apache的? 我目前使用的auto_prepend服务gzip压缩的资源,但我也想最大限度的HTTP缓存。

如何设置这些吗?

Answer 1:

有两种方法可以做到这一点。 首先是指定你的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



Answer 2:

这Apache模块可能会有所帮助: http://httpd.apache.org/docs/2.0/mod/mod_expires.html



Answer 3:

你有没有尝试类似?

<?php
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>


文章来源: Setup HTTP expires headers using PHP and Apache