静态和动态 URL 重写具有不同的参数:
- 静态 URL 重写需要目标 URL 的静态值。
- 动态 URL 重写需要一个表达式,在求值后将定义目标 URL。
使用通配符模式的 URL 重写是 Cloudflare 仪表板中的简化界面,用于创建带有通配符匹配和替换的动态 URL 重写。
URL 重写中所有参数值(合计)的最大长度为 4,096 个字符。例如,你可以为 URI 路径提供 2,048 个字符的静态值(或表达式),并为查询字符串提供 2,048 个字符的静态值(或表达式)。
同时重写 URI 路径和查询字符串的静态 URL 重写规则的 action_parameters 字段完整语法如下:
"action_parameters": {
"uri": {
"path": {
"value": "<URI_PATH_VALUE>"
},
"query": {
"value": "<QUERY_STRING_VALUE>"
}
}
}如果仅重写 URI 路径或查询字符串,请分别省略 query 或 path 参数。
同时重写 URI 路径和查询字符串的动态 URL 重写规则的 action_parameters 字段完整语法如下:
"action_parameters": {
"uri": {
"path": {
"expression": "<URI_PATH_EXPRESSION>"
},
"query": {
"expression": "<QUERY_STRING_EXPRESSION>"
}
}
}如果仅重写 URI 路径或查询字符串,请分别省略 query 或 path 参数。
基于通配符匹配和替换同时重写 URI 路径和查询字符串的动态 URL 重写规则语法如下:
{
"expression": "(http.request.full_uri wildcard r\"<REQUEST_URL>\")",
"action_parameters": {
"uri": {
"path": {
"expression": "wildcard_replace(http.request.uri.path, r\"<PATH_TARGET_PATH>\", r\"<PATH_REWRITE_TO>\")"
},
"query": {
"expression": "wildcard_replace(http.request.uri.query, r\"<QUERY_TARGET_QUERY>\", r\"<QUERY_REWRITE_TO>\")"
}
}
},
"action": "rewrite"
// ...
}<REQUEST_URL>、<PATH_TARGET_PATH>、<PATH_REWRITE_TO>、<QUERY_TARGET_QUERY> 和 <QUERY_REWRITE_TO> 值占位符对应于你在 Cloudflare 仪表板中选择 Wildcard pattern(通配符模式) 选项时可用的字段。更多信息请参阅 Wildcard pattern parameters。
同一规则可以对 URI 路径和查询字符串使用不同类型的 URL 重写。例如,单条规则可以对 URI 路径执行动态 URL 重写,并对查询字符串执行静态 URL 重写。此类规则的语法如下:
"action_parameters": {
"uri": {
"path": {
"expression": "<URI_PATH_EXPRESSION>"
},
"query": {
"value": "<QUERY_STRING_VALUE>"
}
}
}