URL 重写
URL 重写功能支持两种模式:
- 重定向模式:返回 HTTP 3xx 重定向响应,客户端会感知到重定向并发起新请求。
- Header 模式:直接修改请求的 URI 和 Host 头,透明地将请求转发到新地址,客户端无感知。
重写 HTTPS 请求的 URL 需要配置 MITM 并安装 CA 证书。以下是各字段的详细解释:
-
match (string), 必填
URL 匹配正则表达式,匹配完整请求 URL(含协 议、主机名、路径和查询参数)。支持捕获组。
-
location (string), 必填
重定向目标 URL,支持使用
$1、$2等引用捕获组。 -
status_code (integer), 可选
HTTP 重定向状态码(
301永久重定向、302临时重定向、307临时重定向保持方法、308永久重定向保持方法)。省略此字段时使用 header 模式。 -
disabled (bool), 可选
是否禁用此规则。
配置示例
url_rewrites:
# 重定向模式:返回 307 重定向响应
- match: "(.*google)\\.cn"
location: $1.com
status_code: 307
# 重定向模式:返回 301 永久重定向
- match: "^https://old\\.example\\.com/(.*)$"
location: "https://new.example.com/$1"
status_code: 301
# Header 模式:透明转发,客户端无感知
- match: "^https://api\\.example\\.com/v1/(.*)$"
location: "https://api.example.com/v2/$1"
在第一个示例中,系统将查找所有 URL 匹配 (.*google)\.cn 的请求,并返回 307 重定向响应将其引导至对应的 .com 域名。在第三个示例中,系统将匹配的请求透明地转发到 v2 API,客户端不会感知到地址变化。