阅读提示
本文约 625 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
本文约 625 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:英文用户命中中文 CDN 缓存
CDN 边缘按 URL 缓存,若多语言用”同 URL + Cookie”,边缘不知语言,会把首个访问者语言缓存推给所有人。必须让边缘按语言区分。
原理分析:两种区分法
- URL 区分(推荐):/en/、en. 各异 URL,CDN 天然分缓存,最稳。
- Cookie/Vary 区分:同 URL 用
Vary: Cookie或边缘规则按语言 Cookie 分,复杂且易错。
优先 URL 区分,省去边缘配置麻烦。
保姆级实操
URL 模式无需特殊;Cookie 模式 Cloudflare 用边缘规则:
# 若用 Cookie 模式,源站输出 Vary: Cookie,CDN 据此分
add_header Vary "Cookie";
Cloudflare 用 Worker/规则按 ?lang= 或 Cookie 设缓存键。
常见坑
- 同 URL 无 Vary,串语言。
- 边缘规则写错,中文推英文。
- 案例:某站子目录模式多语言,CDN 天然分缓存,无串语言问题;另一 Cookie 模式站没 Vary,乱套后改子目录。
- 缓存键不含语言,回源错。
- 清 CDN 不按语言,残留。
总结
判断标准:优先 URL 区分;Cookie 模式须 Vary/边缘规则按语言。行动清单:选 URL 模式 → 或加 Vary → 边缘规则 → 清缓存测。详见CDN 对 Google SEO 的影响。
觉得有用?点个赞支持一下
