配置访问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。
编码 |
含义 |
处理方法 |
典型应用场景 |
---|---|---|---|
301 |
Moved Permanently |
GET方法不会发生变更,其他方法有可能会变更为GET方法。 |
资源被永久转移。 |
302 |
Found |
GET方法不会发生变更,其他方法有可能会变更为GET方法。 |
由于不可预见的原因该页面暂不可用。 |
303 |
See Other |
GET方法不会发生变更,其他方法会变更为GET方法(消息主体会丢失)。 |
用于PUT或POST请求完成之后进行页面跳转,防止由于页面刷新导致的操作的重复触发。 |
307 |
Temporary Redirect |
方法和消息主体都不发生变化。 |
由于不可预见的原因该页面暂不可用。当站点支持非GET方法的链接或操作的时候,该状态码优于302状态码。 |
操作步骤
- 登录华为云控制台,在控制台首页中选择 ,进入CDN控制台。
- 在左侧菜单栏中,选择 。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
- 选择“缓存配置”页签。
- 在访问URL重写模块,单击“添加”。
图1 添加访问URL重写
表2 参数说明 参数
说明
匹配类型
- 目录路径:指定目录下的文件需执行访问URL重写规则。
- 全路径:某个完整路径下的文件需执行访问URL重写规则。
- 首页:访问域名首页时需执行访问URL重写规则。
匹配内容
- 目录路径:输入要求以“/”作为首字符,以“,”进行分隔,不支持通配符"*",输入的目录路径总数不能超过20个。示例:/test/folder01,/test/folder02。
- 全路径:支持匹配指定目录下的具体文件或者带通配符"*"的文件。输入要求以“/”作为首字符,"*"不能在结尾,最多可配置一个"*"。示例:如/test/index.html或/test/*.jpg。
- 首页:匹配类型为首页时不填匹配内容,只能配置一条“匹配类型”为“首页”的规则。
- 目录路径和全路径均不支持正则匹配。
重定向URL
重定向后的URL,以正斜线(/)开头,不含http://头及域名,例:/newtest/index.html。
- 当匹配类型为全路径时,"*"可以用“$1”捕获,例如:匹配内容为/test/*.jpg,重定向URL配置为/newtest/$1.jpg,则用户请求/test/11.jpg时,$1捕获11,重定向后请求的URL为/newtest/11.jpg。
执行规则
支持Redirect和Break这两种规则。
- Redirect:如果请求的URL匹配了当前规则,该请求将被重定向到目标Path。执行完当前规则后,当存在其他配置规则时,会继续匹配剩余规则。
- Break:如果请求的URL匹配了当前规则,请求将被改写为目标Path。执行完当前规则后,当存在其他配置规则时,将不再匹配剩余规则,此时不支持配置“重定向Host”和“重定向状态码”,返回状态码200。
重定向Host
支持将客户端请求重定向到其他域名,执行规则为Redirect时需要配置此参数。
- 不填时默认为当前域名。
- 支持字符长度为1-255,必须以http://或https://开头,例如http://www.example.com。
- 不支持中文字符。
重定向状态码
执行规则为Redirect时需要配置此参数,支持301、302、303、307,各个重定向方式的区别详见表1。
优先级
访问URL重写规则的优先级,取值为1~100之间的整数,数值越大优先级越高。
优先级设置具有唯一性,不支持多条规则设置同一优先级,且优先级不能输入为空。
- 单击“确定”,完成配置。