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

如何阻止PageSpeed为我的HTML页面添加no-cache缓存头?

解决PageSpeed覆盖PHP设置的Cache-Control头问题

我刚好碰过类似的情况,给你两个简单可行的方案,不用折腾复杂的基础设施配置:

方案1:改用Cache-Control: private(最省心)

直接把你的PHP代码里的header改成:

header("Cache-Control: private, max-age=60");

亲测有效!因为PageSpeed的默认规则是针对可被公共缓存(比如反向代理、CDN)的HTML页面强制添加no-cache, max-age=0头,而private标识意味着这个内容是用户私有、只能被客户端缓存,PageSpeed会跳过对这类缓存头的修改,你的max-age=60就能完整保留在响应头里,不会被追加那些烦人的no-cache字段。

方案2:针对特定页面禁用PageSpeed的缓存头修改(适合需要public的场景)

如果你必须保留public(比如要让反向代理也缓存这个页面),可以在Apache的配置里给index.php单独加规则,不用改全局PageSpeed配置。

在你的站点根目录的.htaccess文件(或者对应的Apache虚拟主机配置块)里添加:

<FilesMatch "index\.php$">
    PageSpeedModifyCachingHeaders off;
</FilesMatch>

这个指令会告诉PageSpeed不要修改index.php返回的缓存头,这样你PHP里设置的Cache-Control: public, max-age=60就能原样输出,不会被PageSpeed追加no-cache的规则。

补充说明

PageSpeed默认给HTML加no-cache头,是因为它默认认为HTML是动态核心内容,需要确保用户每次请求都拿到最新版本。但如果你明确知道这个页面可以缓存,上面两个方法都能轻松绕开这个默认行为,不用去修改那些复杂的下游缓存规则或者全局PageSpeed配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:34:37