apache启用mod_expires或mod_headers设置静态文件缓存时间

更新时间:2015-08-26 点击量:1586

apache启用mod_expires或mod_headers设置静态文件缓存时间

今天在用奇云测测试网站时,发现图片等静态文件未设置缓存。
奇云测检测未设置缓存时间


进一步在浏览器中F12调试发现,确实没有缓存信息(如图 无Cache-Control:max-age值)

设置前无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>

效果 :

设置后总分提高


设置后Cache-Control:max-age值


支付宝扫码打赏 微信打赏

如果文章对您有帮助,就打赏一个吧

在线客服

客户服务

热线电话:

13128985956 服务时间:

周一到周六:9:00-18:00

在线QQ客服

在线微信客服

关于我们 常见问题

支付方式 加盟合作

提交需求
优惠红包 购物车0 反馈留言 返回顶部