跳转到内容
搜索文档

规范化 URL 路径中的编码斜杠

创建 URL rewrite 规则(Transform Rules 的一部分),将请求路径中编码的正斜杠(%2F)规范化为标准斜杠(/)。

最后更新 查看 MarkdownAgent 设置

创建 URL rewrite 规则(Transform Rules 的一部分),将请求路径中编码的正斜杠(%2F)规范化为标准斜杠(/)。 不同的 Web 服务器与应用程序对 URL 中编码的正斜杠(%2F)处理方式不同。Cloudflare 遵循 RFC 3986,其中规定 %2F 不应自动规范化为 /,因为 / 在 URL 中是保留字符,解码它可能改变路径的预期含义。

不过,许多源站在处理请求时自动将 %2F 解码为 /。如果源站的行为如此,你可能希望在 Cloudflare 边缘应用相同的规范化,以确保请求处理、规则评估与日志记录的一致性。

如何规范化 %2F

要在后续规则评估之前,将请求路径中编码的正斜杠(%2F)规范化为标准斜杠(/),请创建新的 URL rewrite 规则,并使用 url_decode() 函数定义动态 URL 路径重写:

Expression Editor(表达式编辑器) 中的文本:

(lower(raw.http.request.full_uri) wildcard "*%2f*")

Path(路径) > Rewrite to(重写为) > Dynamic 之后的文本:

url_decode(http.request.uri.path)

此转换确保请求路径中的 %2F 始终被当作 / 处理。在设置依赖 URL 路径匹配的规则时特别有用,可避免因规范化行为不一致而产生差异。

这篇文档对您有帮助吗?