如果源站资源的存放路径变化,DCDN节点存放资源的路径也会随之变化。用户请求的URL路径如果没有变化,就需要DCDN节点来改写用户请求的URL,将请求URL重定向到目标Path,减少回源,提升客户端访问性能。
背景信息
HTTP 302状态码(即302 Found),可表示资源被临时改变了位置。配置URI重写后,DCDN节点会在给客户端发送的302状态码响应信息的HTTP Location头部中放置新的URI地址信息,客户端收到302状态码响应之后,将会向新的URI地址发起请求。
配置URI重写规则后,DCDN节点默认给客户端发送302重定向状态码,同时也支持303和307重定向状态码,如果您需要修改重定向状态码,可以通过提交工单申请。
编码 | 含义 | 处理方法 | 典型应用场景 |
302 | Found | GET方法不会发生变更,其他方法有可能会变更为GET方法。 | 由于不可预见的原因该页面暂不可用。在这种情况下,搜索引擎不会更新它们的链接。 |
303 | See Other | GET方法不会发生变更,其他方法会变更为 GET 方法(消息主体会丢失)。 | 用于PUT或POST请求完成之后进行页面跳转,防止由于页面刷新导致的操作的重复触发。 |
307 | Temporary Redirect | 方法和消息主体都不发生变化。 | 由于不可预见的原因该页面暂不可用。在这种情况下,搜索引擎不会更新它们的链接。当站点支持非 GET 方法的链接或操作的时候,该状态码优于 302 状态码。 |
单个域名最多可以配置50条重写规则。配置多条规则时,按照DCDN控制台URI重写列表由上而下的顺序执行。
适用场景
客户源站的资源存放路径发生了变更,DCDN节点上的资源存放路径也发生了变更,但是用户请求URL里面包含的资源路径没有变更,这时就需要DCDN节点来改写用户请求里面的资源路径。例如:图片文件原先存放在目录“/download/”,现在变更为“/image/”。
操作步骤
登录DCDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,单击目标域名对应的配置。
在指定域名的左侧导航栏,单击缓存配置。
单击重写访问URL页签。
单击添加,根据您的实际需求,配置重写规则。
参数
说明
待重写URI
执行规则设置为Break的情况下,仅支持以
/
开头的Path,不含协议头和域名。执行规则设置为Redirect的情况下,可以包含协议头和域名。支持PCRE正则表达式,如
^/hello$
。
目标URI
执行规则设置为Break的情况下,仅支持以
/
开头的Path,不含协议头和域名。执行规则设置为Redirect的情况下,可以包含协议头和域名。支持PCRE正则表达式,例如:常用
$1
、$2
来捕获待改写Path中圆括号内的字符串。
执行规则
支持Redirect和Break这两种规则。
Redirect:如果请求URI匹配了某条规则,该请求将会被302重定向到目标URI, DCDN节点返回给客户端的Location信息为目标URI(不修改原始URI中的参数)。执行完当前规则后,当存在其他配置规则时,会继续匹配剩余规则。
Break:如果请求URI匹配了某条规则,该请求将会被改写为目标URI(不修改原始URI中的参数)。执行完当前规则后,当存在其他配置规则时,将不再匹配剩余规则。
单击确定,完成配置。
成功配置重写功能后,您可以在重写列表中,对当前的配置进行修改或删除操作。
配置示例
URI重写规则按照正则表达式配置如下图所示:
客户端请求http://example.aliyundoc.com/hello
时,请求中包含/hello
,DCDN节点会在302状态码的Location信息里写入新的URI地址http://example.aliyundoc.com/index.html
,并返回给客户端,客户端对http://example.aliyundoc.com/index.html
发起请求。