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

如何对查询字符串包含'{'的CDN URL执行缓存失效操作

CDN携带特殊查询参数的URL缓存清除失败解决方案

报错原因

绝大多数CDN的缓存失效规则不允许路径中直接携带未编码的特殊字符,你给出的URL中查询参数包含{、}、"、[、]等JSON语法字符,属于CDN识别的非法路径字符,因此触发无效路径报错。

解决方案

  • 方案1:对查询参数中的特殊字符做URL编码后再提交失效
    需要编码的特殊字符对应规则如下:
    原字符编码后值
    {%7B
    }%7D
    "%22
    [%5B
    ]%5D
    空格%20
    你给出的示例URL编码后可正常提交的失效路径为:
    /search/name?parent=true&filter=%7B%22age%22:5,%22skip%22:0,%22where%22:%7B%22address.pincode%22:%22403003%22%7D,%22include%22:%5B%22name%22,%20%22surname%22,%20%22address%22%5D%7D
  • 方案2:使用通配符批量匹配失效(适用需要清除同前缀所有缓存的场景)
    绝大多数主流CDN都支持通配符*做路径匹配,如果你需要清除所有/search/name路径下带任意查询参数的缓存,直接提交/search/name*作为失效路径即可,无需拼接完整参数,操作更简便。注意提交前确认通配符范围,避免误清其他业务路径的缓存。
  • 方案3:适配对应CDN的失效规则配置
    部分CDN默认缓存失效仅匹配路径部分、忽略查询参数,你可以先检查CDN的缓存键规则是否开启了「携带查询参数区分缓存」,同步在失效配置中开启对应匹配规则后再提交完整路径。
  • 方案4:API提交失效时做好参数转义
    如果你是通过CDN开放API调用执行缓存失效,需要对提交的路径参数提前做URL编码,避免特殊字符被API网关识别为请求分隔符,导致参数解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 06:27:02