You need to enable JavaScript to run this app. 如何配置Apache 2.4实现浏览器对HTML文件的缓存
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Apache 2.4实现浏览器对HTML文件的缓存

解决Apache 2.4下HTML文件无法缓存问题

你当前配置仅设置了全局默认过期规则,很多Apache部署会默认给text/html类型资源附加no-cache、must-revalidate等缓存头,优先级高于ExpiresDefault,导致HTML无法正常缓存。

1. 调整mod_expires配置

修改/etc/httpd/conf/httpd.conf中的对应块,新增HTML专属缓存规则:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 30 days"
# 为HTML MIME类型设置过期时间
ExpiresByType text/html "access plus 7 days"
# 匹配.html/.htm后缀文件强制设置缓存头
<FilesMatch "\.(html|htm)$">
    Header set Cache-Control "public, max-age=604800"
</FilesMatch>
</IfModule>

7天为示例时长,可根据业务需求调整,max-age单位为秒

2. 排查冲突配置

  • 检查站点根目录下的.htaccess文件,是否存在针对HTML文件的Cache-Control: no-cache类配置,此类规则优先级高于全局配置
  • 检查/etc/httpd/conf.d/目录下的虚拟主机配置,是否有针对站点首页、HTML资源的缓存禁用规则

3. 确认依赖模块已启用

执行命令验证mod_expires和mod_headers都处于启用状态:
httpd -M | grep -E 'expires|headers'
如果返回结果缺失对应模块,执行命令启用:

a2enmod expires
a2enmod headers

4. 验证配置生效

重启Apache使配置生效:
systemctl restart httpd
验证时不要使用F5强制刷新,直接在浏览器地址栏回车访问HTML文件,在开发者工具「网络」面板查看响应头:

  • 存在Expires字段,值为你配置的过期时间
  • Cache-Control字段包含public, max-age=xxx,说明配置生效

内容的提问来源于stack exchange,提问作者dmjy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 04:36:06