You need to enable JavaScript to run this app.
内容分发网络

内容分发网络

复制全文
回源配置
回源 URL 改写
复制全文
回源 URL 改写

本文档介绍如何在火山引擎内容分发网络(CDN)中配置 "回源 URL 改写"。该功能允许对 CDN 回源请求 URL 中的路径和查询参数进行改写。

功能概述

在源站上,假设某些文件的 URL 或者 URL 的访问逻辑发生了变更。此时,有以下几种解决方案:

  • 在源站配置 301 或 302 重定向,将内容的原 URL 重定向到新的 URL。同时,在 CDN 中启用 回源重定向跟跟随 功能。
  • 不在源站做任何变更,而是在 CDN 中配置 URL 重定向改写 功能。如果用户请求了原 URL,CDN 会响应 301 或者 302 状态码,指示用户浏览器向新的 URL 发送请求。
  • 不在源站做任何变更,而是在 CDN 配置 回源 URL 改写。如果用户请求了原 URL,CDN 在回源请求中会使用新的 URL。

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

请求流程

在您对某个文件配置了 "回源 URL 改写" 后,请求的流程如下:

  1. 用户请求文件。
  2. 如果该文件未被缓存,CDN 根据配置,将用户请求 URL 改写成新的 URL,然后向源站发起请求。
  3. CDN 获取文件后,将该文件返回给用户。同时,CDN 缓存该文件。需要留意的是,该文件的缓存键中保存的是用户请求 URL,而非改写后的 URL。关于缓存键的介绍,参见 配置缓存键值

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
  4. 定位 回源 URL 改写 模块。
    • 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 回源配置 标签页中定位 回源 URL 改写 模块。
    • 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 回源配置 > 回源 URL 改写。如果该模块置灰,点击模块右边的 +
      关于新旧版域名管理页面的区别,参见 新版域名配置
  5. 回源 URL 改写 模块中,设置 状态 为启用。
  6. 点击 新增规则。 您最多可以添加 50 条规则。
  7. 按照配置说明进行设置。
  8. 设置完成后,点击 提交编辑

配置说明

配置

说明

改写类型

表示改写方式。该配置有以下取值:

  • 路径改写:表示对回源 URL 中的路径进行改写。
  • URL 改写:表示对回源 URL 中的路径和查询字符串进行改写。

路径改写

Image
改写类型路径改写 时,"回源 URL 改写" 的配置说明如下:

配置

说明

用户请求路径

表示一个正则表达式,长度不能超过 1,024 个字符,用于匹配用户请求 URL 中路径。

回源路径

表示改写后,回源请求 URL 中的路径,长度不能超过 1,024 个字符。您可以在路径中使用 $1$2$3 等捕获 用户请求路径 中定义的组。

参见 路径改写配置示例

URL 改写

Image
改写类型URL 改写 时,"回源 URL 改写" 的配置说明如下:

配置

说明

请求 URL

表示一个正则表达式,长度不能超过 1,024 个字符,用于匹配用户请求 URL 中的路径和查询字符串。

回源 URL

表示改写后的路径和查询字符串,长度不能超过 1,024 个字符。您可以使用 $1$2$3 等捕获 请求 URL 中定义的组。

参见 URL 改写配置示例

规则优先级

在规则列表中,每条规则都有优先级。优先级为 1 的规则具有最高优先级。当收到一个用户请求时,CDN 按规则的优先级,从高到低尝试将请求与规则匹配。如果请求匹配了一条规则,匹配过程就停止了。您可以拖动规则来调整优先级。

配置示例

说明

推荐您使用正则表达式测试工具对正则表达式进行测试。譬如,您可以在搜索引擎中使用关键字 在线正则表达式测试 搜索在线测试工具。

路径改写配置示例

用户请求

配置

配置

配置效果

说明

请求 URL 中的路径

用户请求路径(包含组 (.*)

回源路径

重定向路径

/a/bbb/image.png

^/a{1,2}(.*)g$

用于匹配以 / 开头和以 g 结尾的路径。

/food/$1

/food//bbb/image.pn

正则表达式匹配了请求路径。(.*) 表示的字符串是 /bbb/image.pn

注意

重定向路径中出现 //,因此该路径无效。同时,文件扩展名也不正确。

/food$1g

/food/bbb/image.png

正则表达式匹配了请求路径。(.*) 表示的字符串是 /bbb/image.pn

/aaa/bbb/image.png

/a{1,2}(.*)g

用于匹配请求路径中的特定字符串。

/food/$1g

/food/a/bbb/image.png

  • 正则表达式匹配了请求路径。
  • (.*) 表示的字符串是 a/bbb/image.pn

/food/aaa/pngs/image.png

/food/a/pngs/image.png

  • 正则表达式匹配了请求路径。
  • (.*) 表示的字符串是 a/pngs/image.pn

/aaa/bbb/image.png

aaa(.*)

用于匹配请求路径中的特定字符串。

/food//bbb/image.pngg

  • 正则表达式匹配了请求路径中的 aaa/bbb/image.png
  • (.*) 表示的字符串是 /bbb/image.png

注意

重定向路径中出现 //,因此该路径无效。同时,文件扩展名也不正确。

/aaa/bbb/image.png

aaa/(.*)

用于匹配请求路径中的特定字符串。

/food/$1

/food/bbb/image.png

  • 正则表达式匹配了请求路径中的 aaa/bbb/image.png
  • (.*) 表示的字符串是 bbb/image.png

URL 改写配置示例

说明

推荐您也参考上方的 "路径改写配置示例",以了解在使用正则表达式匹配路径时的注意事项。

用户请求

配置

配置

配置效果

说明

请求 URL 中的路径和查询字符串

请求 URL(包含组(.*)

回源 URL

重定向路径

/a/bbb/image.png?param=val1&param2=val2

^/a{1,5}/(.).png?param=(.)

用于匹配符合以下所有条件的请求 URL:

  • /aaa/ 开头的 .png 文件。
  • 第一个查询参数是 param

/food/$1.png?param5=$2&size=6

/food/bbb/image.png?param5=val1&param2=val2&size=6

第一个 (.*) 表示的字符串是 bbb/image。第二个 (.*) 表示的字符串是 val1&param2=val2

最近更新时间:2025.10.27 10:41:17
这个页面对您有帮助吗?
有用
有用
无用
无用