apache启用mod_expires或mod_headers设置静态文件缓存时间
更新时间:2015-08-26 点击量:1586

进一步在浏览器中F12调试发现,确实没有缓存信息(如图 无Cache-Control:max-age值)
由于我用的阿里云免费的linux虚拟主机,可以通过以下两种方式设置静态文件的缓存:
1、通过mod_expires设置缓存
有三种格式:
语句格式1:
ExpiresByType 类型 A/M+时间(以秒为单位)
A:access表示从浏览器访问时间算起
M:modification表示文件修改时间算起
如:ExpiresByType image/png A604800 #设置png格式的缓存时间为7天语句格式2:
ExpiresByType 类型 描述性语言
描述性语言:modification、access、now |plus|years、months、weeks、days、hours、minutes、seconds
如:ExpiresByType image/png “access plus 7 days” #设置png格式的缓存时间为7天语句格式3:
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$"> ExpiresDefault A604800 </FilesMatch>
表示匹配jpg|jpeg|png|gif|swf格式的文件缓存为7天
将下列代码加入.htaccess文件中(本次采用的为语法格式一):
<IfModule mod_expires.c>
#开启
ExpiresActive On
#设置默认的缓存时间
ExpiresDefault A86400
#以下是针对不同的文件类型设置不同的缓存时间
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A604800
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A900
</IfModule>
2、使用mod_headers模块设置缓存
若虚拟主机不支持mod_expires,可以使用mod_headers设置
代码如下
<ifmodule mod_headers.c>
<filesmatch "\.(html|htm|txt)$">
header set cache-control "max-age=3600″
</filesmatch>
#其它文件可参照设置,此略。
</ifmodule>
效果 :
如果文章对您有帮助,就打赏一个吧