OriDra外贸人工作台
guide

缓存规则:别把后台也缓存了

改完内容前台不变,或者一进后台就被踢出来,基本都是缓存配置的问题。

症状

  • 后台改了内容,前台刷新还是旧的
  • 登录后台后跳来跳去,一会儿登录一会儿没登录
  • 表单提交报错,或者提交完页面没反应

这三个症状里,前两个是缓存了不该缓存的页面,第三个是 CSRF token 被缓存了。

什么不该缓存

  • 后台路径(比如 /admin 开头的所有页面)
  • 带登录态的所有请求
  • 表单页面(尤其是含 CSRF token 的)
  • 用户中心、订单页这类个性化页面

怎么配

在 Cloudflare 的 Cache Rules(缓存规则)里,按顺序建规则:

  • 第一条:路径包含 /admin,动作选「绕过缓存」
  • 第二条:Cookie 含登录态标识,动作选「绕过缓存」
  • 第三条:路径匹配静态资源(css、js、图片),边缘缓存时间设长一点
  • 第四条:路径匹配内容页(文章、商品列表),边缘缓存 5 到 10 分钟

规则是从上往下匹配的,越具体的越要放前面。

关于 CSRF 的坑

如果你的网站有整页缓存,缓存下来的 HTML 里会带着某个人的表单令牌。用户拿到这个失效令牌去提交,服务端一定拒绝。

解决办法有两个:

  • 含表单的页面直接不缓存
  • 或者在缓存前把令牌替换成占位符,命中缓存后再按当前用户的会话回填

第二种做法更复杂但性能更好,适合内容站。

怎么验证生效

看响应头里的 cf-cache-status:

  • HIT:命中缓存
  • MISS:没命中,但这次会存进去
  • DYNAMIC:不缓存,通常是规则把它排除了
  • BYPASS:主动绕过

如果一直显示 DYNAMIC,说明你的缓存规则没生效,或者源站返回了不缓存的头。

以上内容来自实际操作经验与公开资料整理,不构成对任何产品或服务的效果承诺。建站与投放涉及的具体费用和政策以服务商当期说明为准。