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

摘要: 今天在用奇云测测试网站时,发现图片等静态文件未设置缓存。<img alt="奇云测检测未设置缓存时间" src="/uploads/image/150826/1dsx1o36gu.png?media_id=230" title="奇云测检测未设置缓存时间" width="600" >进

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

今天在用奇云测测试网站时,发现图片等静态文件未设置缓存。
奇云测检测未设置缓存时间<img alt="奇云测检测未设置缓存时间" src="https://s.yunzhuji.shop/uploads/image/150826/1dsx1o36gu.png_.jpg?media_id=230" title="奇云测检测未设置缓存时间" width="600" >


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

设置前无Cache-Control:max-age值<img alt="设置前无Cache-Control:max-age值" src="https://s.yunzhuji.shop/uploads/image/150826/1dxl1u53eb.png_.jpg?media_id=232" title="设置前无Cache-Control:max-age值" width="600" >


由于我用的阿里云免费的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>

效果 :

设置后总分提高<img alt="设置后总分提高" src="https://s.yunzhuji.shop/uploads/image/150826/1dxc1y3sy5.png_.jpg?media_id=231" title="设置后总分提高" width="600" >


设置后Cache-Control:max-age值<img alt="设置后Cache-Control:max-age值" src="https://s.yunzhuji.shop/uploads/image/150826/1foa1urmbj.png_.jpg?media_id=233" title="设置后Cache-Control:max-age值" width="600" >


猜你喜欢

微信QQ空间QQ好友新浪微博联系客服