URL 改写
此页面由
docs/rules/url-manipulation.md自动同步生成。
URL 操作规则
Section titled “URL 操作规则”本章介绍动态修改请求 URL 的规则。
urlParams
Section titled “urlParams”添加或修改 URL 查询参数。
pattern urlParams://key=value # 内联格式(单个参数)pattern urlParams://(key:value) # 小括号格式(无空格)pattern urlParams://{varName} # 引用内嵌值(推荐)⚠️ 注意:
{name}是引用内嵌值的语法,不是直接定义 JSON!- 小括号内不能有空格,含空格内容必须使用块变量
# 内联格式添加单个参数www.example.com urlParams://debug=true
# 小括号格式(无空格)www.example.com urlParams://(version:2)
# 引用内嵌值(多个参数,推荐)www.example.com urlParams://{my-params}内嵌值定义:
``` my-paramsversion: 2lang: zh```# API 版本控制www.example.com/api urlParams://api_version=v2
# 添加认证参数(使用模板变量需要反引号 + 引用内嵌值)www.example.com urlParams://`{auth-params}`
# 调试模式www.example.com urlParams://debug=1
# A/B 测试www.example.com urlParams://experiment=variant_b# 动态参数(使用模板变量需要反引号)www.example.com urlParams://`t=${now}&id=${randomUUID}`
# 或者使用内嵌值(推荐)www.example.com urlParams://`{time-params}`
``` time-paramst: ${now}id: ${randomUUID}```| 测试场景 | 规则 | 原始 URL | 预期 URL |
|---|---|---|---|
| 添加单个参数 | test.com urlParams://debug=true | http://test.com/api | http://test.com/api?debug=true |
| 添加到已有参数 | test.com urlParams://b=2 | http://test.com/api?a=1 | http://test.com/api?a=1&b=2 |
| 覆盖已有参数 | test.com urlParams://a=new | http://test.com/api?a=old | http://test.com/api?a=new |
| 小括号格式 | test.com urlParams://(x:1) | http://test.com/ | http://test.com/?x=1 |
pathReplace
Section titled “pathReplace”替换 URL 路径中的内容。
pattern pathReplace://old=newpattern pathReplace://(/regex/=replacement)# 简单替换www.example.com pathReplace://v1=v2
# 正则替换www.example.com pathReplace://(/v\d+/=v3)
# 删除路径部分www.example.com pathReplace://api/=# API 版本迁移www.example.com pathReplace://v1=v2
# 路径重写www.example.com pathReplace://old-service=new-service
# 环境切换www.example.com pathReplace://prod=staging
# 移除前缀www.example.com pathReplace://prefix/=# 替换所有版本号www.example.com pathReplace://(/\/v\d+\//=/v999/)
# 捕获组替换www.example.com pathReplace://(/\/users\/(\d+)/=/api/user/$1)
# 大小写不敏感www.example.com pathReplace://(/\/API/i=/api)| 测试场景 | 规则 | 原始路径 | 预期路径 |
|---|---|---|---|
| 简单替换 | test.com pathReplace://old=new | /old/path | /new/path |
| 版本替换 | test.com pathReplace://v1=v2 | /api/v1/users | /api/v2/users |
| 正则替换 | test.com pathReplace://(/v\d+/=v99) | /api/v1/users | /api/v99/users |
| 删除部分 | test.com pathReplace://prefix/= | /prefix/api | /api |
URL 操作规则可以与其他规则组合:
# URL 参数 + 路由www.example.com urlParams://debug=true host://debug-server.local
# 路径替换 + 响应修改www.example.com pathReplace://v1=v2 resHeaders://X-Api-Version=v2
# 多个 URL 操作www.example.com pathReplace://old=new urlParams://migrated=true
# 配合过滤器www.example.com urlParams://test=1 includeFilter://h:X-Test- 参数编码:参数值会自动进行 URL 编码
- 参数覆盖:同名参数会被覆盖,而非追加
- 路径替换顺序:替换按照规则定义顺序执行
- 正则性能:复杂正则可能影响性能