配置Cloudflare页面规则后请求头URL与实际请求URL不一致如何解决?
原因说明
你遇到的异常确实是缓存导致,核心涉及两类缓存逻辑:
- Cloudflare边缘节点缓存:301属于永久重定向,Cloudflare默认会对该类响应进行长周期缓存,更新页面规则后旧的缓存结果不会自动失效,会持续生效直到缓存过期。
- 浏览器本地缓存:浏览器同样会对301重定向做永久缓存,即便服务端配置更新,本地浏览器会优先读取本地缓存的重定向规则,不会发起新请求校验服务端配置变更。
解决步骤
- 清理Cloudflare侧缓存
进入Cloudflare对应域名控制台,打开缓存选项卡,选择清除所有缓存即可;如果需要定向清理,可选择自定义清除,输入匹配规则www.mydomain.com/*仅清理该路径下的缓存资源。 - 服务端配置校验
清理完成后先跳过本地环境用curl命令校验Cloudflare规则是否生效:
若返回结果中curl -I www.mydomain.comLocation字段值为你配置的根域名目标地址、状态码为301 Moved Permanently,则代表Cloudflare侧配置已正常生效。 - 本地缓存清理
可选以下任意一种方式跳过浏览器本地301缓存:- 打开浏览器无痕/隐身模式直接访问测试
- 清理浏览器的缓存的图片和文件、浏览历史后重启浏览器测试
- 访问页面时按下
Ctrl+Shift+R(Mac设备为Cmd+Shift+R)强制刷新跳过缓存
后续配置建议
后续调整重定向规则时,可先临时将301永久重定向切换为302临时重定向,确认规则完全符合预期后再切回301,避免永久重定向被大范围缓存后导致异常影响范围过大、排查成本高。
内容的提问来源于stack exchange,提问作者taurOan
相关产品推荐
相关产品推荐

