简单教学 apache 配置 Expire/Cache-Control 头

本文详细介绍了如何在Apache2.4.17中配置Expire和Cache-Control头,通过编辑httpd.conf文件启用expires_module,然后添加配置指令设定缓存时间。遇到304状态码而非期望的200 from cache时,需注意浏览器刷新行为的影响,直接在地址栏回车可观察到200 from cache。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单教学 apache 配置 Expire/Cache-Control 头

这里我使用的是Apache2.4.17

打开apache安装目录,找到conf目录,用记事本打开httpd.conf 文件。

ctrl+f 查找 LoadModule expires_module modules/mod_expires.so
去掉前面 #号!

在文本最后面添加:

<IfModule expires_module>

    #打开缓存
    ExpiresActive on 
    #css文件缓存7200000/3600/24=83天
    ExpiresByType text/css A7200000

    #js文件缓存83天
    ExpiresByType application/x-javascript A7200000
    ExpiresByType application/javascript A7200000

    #html文件缓存83天
    ExpiresByType text/html A7200000

    #图片文件缓存83天
    ExpiresByType image/jpeg A7200000
    ExpiresByType image/gif A7200000
    ExpiresByType image/png A7200000
    ExpiresByType image/x-icon A7200000

  </IfModule>

上面开启的是expire

下面是cache-control
在文本后面继续添加

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf)$">
   Header set Cache-Control "max-age=604800, public"
</FilesMatch>

<FilesMatch "\.(css|js)$">
   Header set Cache-Control "max-age=604800, public"
</FilesMatch>

这里时间设置不一样是为了检验是否成功配置的,因为,没设cache-control的时候,它会自动根据expire的时间设置自己。

最后重启apache服务器,ok!

这里说一个自己爬的坑吧!(那就是如果不出现 200 form cache, 而是出现了304,那是因为,你刷新了浏览器。。。想要出现 200 form cache,需要在浏览器地址栏里按回车键。)

也就是说:刷新浏览器 触发 304, 地址栏回车触发 200 form cache。

查了好久才发现了,之前一直想不通,既然设置了cache-control和expire为啥还是304,这就是原因,就是这么简单。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值