
# 配置客户端访问URL重写
当用户请求URL与CDN节点缓存资源的URL不一致时，可以通过访问URL重写功能重定向或重写到目标URL。
#### 适用场景
如果服务器资源的存放路径变化，CDN节点存放资源的路径也会随之变化。用户请求的URL路径如果没有变化，就需要CDN节点来重写用户请求的URL。例如用户请求的图片"a"的路径为"/test"，服务器中图片"a"的存放路径已改为"/testnew"。
CDN通过重定向的方式来完成URL的匹配，HTTP 302状态码（即302 Found），可表示资源被临时改变了位置。配置访问URL重写后，CDN节点会在给客户端发送的302状态码响应信息的HTTP Location头部中放置新的URL地址信息，客户端收到302状态码响应之后，将会向新的URL地址发起请求。重定向的状态码及其含义详见表[表1]。
 表1重定向方式 
| 编码  | 含义                 | 处理方法                                | 典型应用场景                                              |
|:---|:---|:---|:---|
| 301 | Moved Permanently  | GET方法不会发生变更，其他方法有可能会变更为GET方法。       | 资源被永久转移。                                            |
| 302 | Found              | GET方法不会发生变更，其他方法有可能会变更为GET方法。       | 由于不可预见的原因该页面暂不可用。                                   |
| 303 | See Other          | GET方法不会发生变更，其他方法会变更为GET方法（消息主体会丢失）。 | 用于PUT或POST请求完成之后进行页面跳转，防止由于页面刷新导致的操作的重复触发。          |
| 307 | Temporary Redirect | 方法和消息主体都不发生变化。                      | 由于不可预见的原因该页面暂不可用。当站点支持非GET方法的链接或操作的时候，该状态码优于302状态码。 |
   
#### 工作原理
配置访问URL重写后，如果用户请求命中了配置的规则，那么请求流程如下图所示。
![](https://support.huaweicloud.com/usermanual-cdn/zh-cn_image_0000002305207724.jpg "点击放大")
1. 用户使用旧URL发起请求，假设旧URL为example.com/test/index.html，此时匹配了访问URL重写规则。
2. 节点返回302状态码（配置访问URL重写时选择的状态码为302），并在HTTP Location头部中放置新的URL地址信息，假设新的URL为example.com/newtest/index.html。
3. 用户收到302状态码后，使用新的URL（example.com/newtest/index.html）重新发起请求。
4. 如果匹配节点缓存，则返回对应资源给用户；如果未匹配节点缓存，节点使用重写后的URL（example.com/newtest/index.html）向源站发起请求。
5. 源站返回请求资源给CDN节点。
6. CDN节点缓存该资源并返回给用户。
 
#### 注意事项
配置访问URL重写后，CDN将使用重写后的URL回源，请配置[回源URL改写](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0179.html)、[配置高级回源](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0221.html)、[规则引擎](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0310.html)功能时注意匹配路径。
#### 操作步骤
1. 登录[CDN控制台](https://console.huaweicloud.com/cdn/?locale=zh-cn#/cdn/overview)。
2. 在左侧菜单栏中，选择"域名管理"。
3. 在域名列表中，单击需要修改的域名，进入"概览"页面。
4. 选择"缓存配置"页签。
5. 在访问URL重写模块，单击"添加"。
   图1添加访问URL重写   
   ![](https://support.huaweicloud.com/usermanual-cdn/zh-cn_image_0000002635883334.png "点击放大")
   表2参数说明 
   | 参数      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|
   | 匹配类型    | **目录路径**：指定目录下的文件需执行访问URL重写规则。 **全路径**：某个完整路径下的文件需执行访问URL重写规则。 **首页**：访问域名首页时需执行访问URL重写规则。 **正则**：客户端请求URL中的字符匹配正则表达式时需要执行访问URL重写规则。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 匹配内容    | **目录路径：**输入要求以"/"作为首字符，以","进行分隔，不支持配置"?"，输入的目录路径总数不能超过20个。支持通配符"\*"匹配，最多可配置5个"\*"，"\*"不可连续出现，通配符匹配时仅支持输入一个目录路径。示例：/test/folder01,/test/folder02。 **全路径：**支持匹配指定目录下的具体文件或者带通配符"\*"的文件，不支持配置"?"。输入要求以"/"作为首字符，最多可配置5个"\*"，"\*"不可连续出现。示例：如/test/index.html或/test/\*.jpg。 **首页**：匹配类型为首页时不填匹配内容，只能配置一条"匹配类型"为"首页"的规则。 **目录路径和全路径均不支持正则匹配**。 **正则**：支持数字0-9、字符a-z、A-Z，及特殊符\^$\*+\|?:.\<\>=!\[\]{}()-_,;\~/，字符长度为1\~255。示例：/\^\[1-9\]/d\[a-zA-Z\]\*$。 说明： 华为云CDN于2026年4月调整了通配符"\*"的匹配逻辑，"匹配类型"为"目录"或"全路径"时： - 已经配置过通配符的账号：通配符"\*"可以匹配1到多个字符，如果需要调整为可以匹配**0到多个字符**，请提交工单申请。  - 从未配置过通配符的账号：通配符"\*"可以匹配0到多个字符。                             |
   | 重定向URL  | 重定向后的URL，以正斜线（/）开头，不含http://头及域名，例：/newtest/index.html。 - 当"匹配类型"为"全路径"时，"\*"可以用"$1"捕获，例如：匹配内容为/test/\*.jpg，重定向URL配置为/newtest/$1.jpg，则用户请求/test/11.jpg时，$1捕获11，重定向后请求的URL为/newtest/11.jpg。  - 当"匹配类型"为"目录路径"时，"\*"可以用"$n"（n=1,2,3...，n≤5且不能超过"\*"的总数）捕获，$1捕获第一个"\*"、$2捕获第二个"\*"，依次按顺序捕获。 - 示例1：匹配内容为/test/\*/abc\*时，重定向URL配置为/newtest/abc$2，则用户请求/test/test1/abc01/02/1.jpg时，$2捕获第二个"\*"对应的内容，即：01/02/1.jpg，重定向后请求的URL为/newtest/abc01/02/1.jpg。  - 示例2：匹配内容为/test/\*/abc时，重定向URL配置为/newtest/$1/abc，则用户请求/test/test1/abc/abc02/1.jpg时，$1捕获test1，重定向后请求的URL为/newtest/test1/abc/abc02/1.jpg。     |
   | 执行规则    | 支持改写和重定向这两种规则。 - 重定向：如果请求的URL匹配了当前规则，该请求将被重定向到目标Path。  - 改写：如果请求的URL匹配了当前规则，请求将被改写为目标Path。此时不支持配置"重定向Host"和"重定向状态码"，重定向后的请求如果命中CDN缓存，则返回200状态码；如果未命中CDN缓存，回源站请求资源，CDN节点透传源站返回的状态码给客户端。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 重定向Host | 支持将客户端请求重定向到其他域名，执行规则为重定向时需要配置此参数。 - 不填时默认为当前域名。  - 支持字符长度为1-255，必须以http://或https://开头，例如http://www.example.com。  - 不支持中文字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 重定向状态码  | 执行规则为重定向时需要配置此参数，支持301、302、303、307，各个重定向方式的区别详见[表1]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 优先级     | 访问URL重写规则的优先级，取值为1\~1000之间的整数，**数值越大优先级越高**。 **优先级设置具有唯一性**，不支持多条规则设置同一优先级，且优先级不能输入为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
      
   
6. 单击"确定"，完成配置。
 
#### 配置示例
**示例1**：客户端请求"http://www.example.com/test/test1/abc/abc02/1.jpg"时，匹配到了目录规则/test/\*/abc，此时客户端访问的URL为"http://www.example.com/newtest/test1/abc"。
![](https://support.huaweicloud.com/usermanual-cdn/zh-cn_image_0000002221396181.png "点击放大")
**示例2**：客户端请求"http://www.example.com/test/1.jpg"时，匹配到了全路径规则test/1.jpg，此时客户端访问的URL为"http://www.example.com/newtest/a.html"。
![](https://support.huaweicloud.com/usermanual-cdn/zh-cn_image_0000002186200982.png "点击放大")
#### 相关文档
调用接口修改访问URL重写请参考：[修改域名全量配置接口 - UpdateDomainFullConfig](https://support.huaweicloud.com/api-cdn/UpdateDomainFullConfig.html)。
