You need to enable JavaScript to run this app.
导航

配置 URL 重定向改写

最近更新时间2024.03.06 15:19:22

首次发布时间2022.08.24 19:23:09

本文档介绍如何在火山引擎内容分发网络中配置 URL 重定向改写。该配置允许您对指定的请求路径,将其重定向到指定地址。

说明

该功能目前以白名单的方式对外开放。如果您需要此功能,请提交工单

使用场景

在源站上,假设某些用户经常访问的文件的路径发生了变更。此时,有以下几种解决方案:

  • 在源站配置 301 或 302 重定向,将内容的原 URL 重定向到新的 URL。同时在内容分发网络中开启回源重定向跟随

  • 不在源站做任何变更,而是在内容分发网络配置 "URL 重定向改写"。如果用户请求了原 URL,内容分发网络会响应 301 或者 302 状态码,指示用户浏览器向新的 URL 发送请求。

  • 不在源站做任何变更,而是在内容分发网络配置回源路径改写。如果用户请求了原 URL,内容分发网络在回源请求中会使用新的 URL。

本文档介绍的是第二种解决方案。

请求流程

在配置了某文件的 URL 重定向改写后,用户请求的流程如下:

  1. 用户使用浏览器向该文件发起访问请求。
  2. 内容分发网络返回 301 或者 302 响应状态码以及文件的新 URL。
  3. 用户浏览器向新 URL 发起访问请求。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
    页面上方的筛选条件和搜索框可以帮助您快速找到要配置的域名。
  4. 在域名页面上,点击 访问控制 页签。
  5. 在页面右上方,点击 编辑配置
  6. URL 重定向改写 下方,点击 添加规则
    您最多可以添加 50 条规则。
  7. 根据表格中配置说明进行设置。
  8. 设置完成后,在页面右上方,点击 提交编辑

alt

配置说明

配置说明
优先级表示规则的优先级。数字 1 的规则优先级最高。在收到请求时,CDN 按规则的优先级,从高到低尝试将请求与规则匹配。如果请求匹配了某一条规则,CDN 就停止匹配其余规则。您可以通过拖拽调整规则的优先级。
待重写路径输入内容的原路径,长度不能超过 1,024 个字符。路径必须以斜杠(/)开头,并且不能包含连续斜杠(//)、百分号(%)、空格。路径支持正则表达式。例如,^/aaa/bbb/(.*) 表示路径 /aaa/bbb/ 下的所有文件。

重定向方式

选择重定向的响应状态码。您可以根据业务需要选择合适的状态码。该参数的取值如下:

  • 301:表示内容是永久性转移。
  • 302:表示内容是暂时性转移。

需要留意的是,如果原用户请求使用的方法不是 GET,客户端浏览器可能会使用 GET 方法发送重定向请求。

目标请求协议

选择重定向后的请求所使用的协议。该参数的取值如下:

  • 跟随请求:表示重定向后的请求使用原请求的协议。
  • HTTP:表示重定向后的请求强制使用 HTTP 协议。
  • HTTPS:表示重定向后的请求强制使用 HTTPS 协议。
目标 host输入目标路径所归属的域名或者 IP 地址。IP 地址只能是 IPv4 类型的地址。如果输入的是域名,域名的长度不能超过 1,024 个字符。需要注意的是,如果输入的域名不是加速域名,用户对重定向后的 URL 的请求将无法被加速。
目标路径输入重定向后的目标路径,长度不能超过 1,024 个字符。路径必须以斜杠(/)开头,并且不能包含连续斜杠(//)、百分号(%)、空格。路径支持正则表达式。如果 待重写路径 字段也使用了正则表达式,您可以在 目标路径 字段中使用 $n 匹配 待重写路径 字段中正则表达式的变量。例如,就基于前面待重写路径的例子,输入的目标路径是 /bbb/$1。此时,目标路径为 /bbb/,同时文件名保持不变。

目标参数

选择原请求 URL 中查询参数的处理方式。该配置的取值如下:

  • 保留全部:表示新 URL 中包含原请求 URL 中所有的查询参数。
  • 删除全部:表示新 URL 中不包含原请求 URL 中的任何查询参数。
  • 保留部分:表示新 URL 仅包含原请求 URL 中指定的查询参数。
  • 删除部分:表示新 URL 中不包含原请求 URL 中指定的查询参数。

指定部分参数

指定要保留或删除的查询参数,长度不能超过 1,024 个字符。多个查询参数间使用英文分号(;)分隔。

  • 如果 目标参数保留全部 或者 删除全部, 该配置的值必须为 *

  • 如果 目标参数保留部分 或者 删除部分,您可以指定一个或者多个查询参数。查询参数不能包含连续斜杠(//)、百分号(%)、双引号(")、空格。同时,查询参数不能是 *

该配置的默认值是 *