You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过.htaccess为域名根目录设置差异化ExpiresByType缓存控制?

为首页和其他页面设置不同的缓存max-age规则

你之前用的<if URL="...">语法不符合Apache的规范,下面是两种可行的配置方案,帮你实现首页缓存3600秒、其他页面缓存86400秒的需求:

方案一:使用Apache 2.4+的<If>指令(推荐)

这种方式语法更灵活,适合精准匹配请求路径:

# 全局开启过期缓存控制
ExpiresActive On

# 匹配首页(仅请求URI为/的情况)
<If "%{REQUEST_URI} == '/'">
    ExpiresByType text/html A3600
</If>

# 匹配所有非首页的请求
<If "%{REQUEST_URI} != '/'">
    ExpiresByType text/html A86400
</If>

如果你的首页还存在/index.html这类等价路径,可以把条件改成正则匹配:

<If "%{REQUEST_URI} =~ m#^(/|/index\.html)$#">
    ExpiresByType text/html A3600
</If>

方案二:使用<Location>和<LocationMatch>指令

这种方式更适合传统的路径匹配场景:

ExpiresActive On

# 为根路径(首页)设置缓存
<Location "/">
    ExpiresByType text/html A3600
</Location>

# 为除根路径外的所有页面设置缓存
<LocationMatch "^/(?!$)">
    ExpiresByType text/html A86400
</LocationMatch>

^/(?!$)是正则表达式,意思是匹配以/开头但不是仅/的所有路径。

注意事项

  • 确保服务器已经启用了mod_expires模块,Debian/Ubuntu系统可以用a2enmod expires命令启用,CentOS则是在httpd.conf里取消对应模块的注释。
  • 如果你用的是Nginx服务器,配置逻辑类似但指令不同,需要改用location块结合add_header Cache-Control来实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:04:59