如果用户请求的URI与CDN节点上缓存资源的URI不匹配,则需要CDN节点将用户请求URI修改为与CDN节点上缓存资源匹配的URI,并且将改写后的URI信息作为302重定向状态码的Location信息一同返回给用户,用户在收到302重定向状态码以后,将会向改写后的URI地址发起新的请求。

背景信息

302状态码即302 Found,原始描述短语为 Moved Temporarily ,是HTTP协议中的一个状态码(Status Code)。302 Found 可以简单的理解为该资源之前存在,但已经被临时改变了位置,即请求的资源暂时驻留在不同的URI下。对于CDN节点服务器而言,通常会在给客户端发送的302状态码响应信息的HTTP Location头部中放置新的URI地址信息,客户端在收到302状态码响应之后,将会向新的URI地址发起请求。

适用场景

客户源站的资源存放路径发生了变更,因而CDN节点上的资源存放路径也发生了变更,但是用户请求URL里面包含的资源路径没有变更,这时就需要CDN节点来改写用户请求里面的资源路径。例如:图片文件原先存放在目录“/download/”,现在变更为“/image/”。

URI重写规则

操作步骤

注意 单个域名最多可以配置50条重写规则。配置多条规则时,按照CDN控制台URI重写列表由上而下的顺序执行。
  1. 登录CDN控制台
  2. 在左侧导航栏,单击域名管理
  3. 域名管理页面,单击目标域名对应的管理
  4. 在指定域名的左侧导航栏,单击缓存配置
  5. 单击URI重写页签。
  6. 单击添加,根据您的实际需求,配置待重写URI、目标URI和执行规则。
    重写
    参数 说明
    待重写URI 以正斜线(/)开头的URI,不含http://头及域名。支持PCRE正则表达式,例如:^/hello$。
    目标URI 以正斜线(/)开头的URI,不含http://头及域名,例如:/index.html。
    执行规则 支持RedirectBreak这两种规则。
    • Redirect:如果请求的URI匹配了当前规则,该请求将被302重定向到目标URI。执行完当前规则后,当存在其他配置规则时,会继续匹配剩余规则。
    • Break:如果请求的URI匹配了当前规则,请求将被302重定向到目标URI。执行完当前规则后,当存在其他配置规则时,将不再匹配剩余规则。
  7. 单击确定,完成配置。

    成功配置重写功能后,您可以在重写列表中,对当前的配置进行修改删除操作。

配置示例

待重写URI按照正则表达式配置,为加速域名example.aliyundoc.com配置URI重写规则,待重写URI为^/hello$,目标URI为/index.html,执行规则为Redirect;客户端请求中包含目录/hello时,例如客户端请求为http://example.aliyundoc.com/hello时,CDN节点将会给客户端响应302状态码,并且在Location信息里面写入新的URI地址http://example.aliyundoc.com/index.html正则表达

相关API

BatchSetCdnDomainConfig