设置URI重写
更新时间:2025-03-24
接口
本接口用于设置URI重写。
Method | Path | 说明 |
---|---|---|
PUT | /v2/domain/{domain}/config?urlRules | 配置URI重写 |
domain:修改配置的CDN加速域名。
请求体(Request Body)
参数 | 可选 | 类型 | 说明 |
---|---|---|---|
urlRules | 必选 | []UrlRule | UrlRule的定义见下面,UrlRule数组个数<=10 |
UrlRule
参数 | 可选 | 类型 | 说明 |
---|---|---|---|
action | 必选 | string | 合法值为redirect或者break。 redirect:若请求的URI匹配了当前规则,该请求将被302重定向跳转到目标URI。 break:若请求的URI匹配了当前规则,执行完当前规则后,将不再匹配剩余规则。 |
src | 必选 | string | 字符串长度小于等于128。 不含http(s)://头和域名。 最终生成的URI必须以/开头。 支持捕获,比如${1}/test。 目标URI里面如果没有?,则会带上原始参数。如果有?,则会用?后面的参数替换原始参数。 比如访问URI为/a?c=1 • 待重写URI为/a,目标URI为/b,改写后URI为/b?c=1 • 待重写URI为/a,目标URI为/b?,改写后URI为/b • 待重写URI为/a,目标URI为/b?d=1,改写后URI为/b?d=1 |
dst | 必选 | string | 字符串长度小于等于128。 执行规则设置为break的情况下,不含http(s)://头和域名;执行规则设置为redirect的情况下,可以包含http(s)://头和域名(不允许scheme+IP),且域名必须已完成备案。 可以匹配参数,比如只改写带有特定参数的URI。 支持正则以及捕获,比如(/[^?]+)\?c=1 |
响应码 (Http Status Code)
HTTP Status Code | 说明 |
---|---|
200 | 成功 |
400 | 更新失败,参数错误等 |
请求示例
Text
1PUT /v2/domain/myself.baidu.com/config?urlRules HTTP/1.1
2Host: cdn.baidubce.com
3x-bce-date: 2022-02-17T08:05:51Z
4x-bce-request-id: 5e978585-0652-4456-89d4-bf8656026a34
5Content-Length: 80
6Content-Type: text/json;utf-8
7
8{
9 "urlRules": [
10 {
11 "action": "redirect",
12 "src": "/data/(.*)",
13 "dst": "/${1}/data2222"
14 }
15 ]
16}
响应示例
Text
1HTTP/1.1 200 OK
2Server: nginx
3Date: Thu, 17 Feb 2022 08:07:37 GMT
4Content-Type: application/json; charset=utf-8
5Transfer-Encoding: chunked
6Connection: keep-alive
7X-Powered-By: PHP/7.1.5
8x-bce-request-id: 5e978585-0652-4456-89d4-bf8656026a34
9
10{
11 "status": "RUNNING"
12}