全部产品
Search
文档中心

视频点播:改写回源URL

更新时间:Feb 09, 2026

视频点播支持在用户请求需要回源时进行URL改写,改写不影响CDN的内部链路和缓存key,只会在CDN节点向源站发送回源请求的时候使用改写后的URL。通过本文您可以了解改写回源URL功能的操作步骤。

工作原理

通过重写回源URL规则,使请求URL与源站URL匹配,准确获取源站的资源,或者传递指定的参数给源站。

  • 执行规则设置为“空”或者“break”的情况下,仅重写URL中的资源路径部分。

    无标题文档-流程图

  • 执行规则设置为“enhance_break”的情况下,能够同时重写资源路径和请求参数。

    zh-enhance_break

注意事项

  • 单个域名可以配置的重写回源路径规则数量上限是50个。

  • 规则重写按照规则列表从上到下顺序依次执行,因此顺序可能会影响您的重写结果。

  • 回源URL改写功能在配置执行规则的情况下,对URL中参数的改写可能会与域名管理 > 性能优化页签下的忽略参数功能相冲突,同时配置的时候,需要注意避免配置冲突。

操作步骤

  1. 登录视频点播控制台

  2. 在左侧导航栏选择配置管理 > 分发加速配置 > 域名管理,进入到域名管理页面。

  3. 单击目标域名所在行的配置

  4. 在指定域名的左侧导航栏,单击回源配置

  5. 单击回源URL改写页签。

  6. 单击添加,并根据您的需求,配置待改写的Path、目标Path和执行规则。

    重要

    规则改写按照回源URL改写页面的规则列表从上到下顺序执行,此顺序可能会影响您的改写结果。

    参数

    示例

    说明

    待改写的Path

    ^/hello$

    以正斜线(/)开头的URL,不含http://头及域名。支持PCRE正则表达式。

    目标Path

    /hello/test

    以正斜线(/)开头的URL,不含http://头及域名。

    执行规则

    如果配置了多条规则,在匹配执行当前规则后,按照从上到下顺序按依次执行可以匹配的所有规则。

    break

    • 如果配置了多条规则,若请求的URL匹配了当前规则,匹配执行完当前规则后,剩余规则将不再匹配。

    • 只修改URL中的资源路径部分,不修改URL的参数,不影响回源参数改写功能对URL中参数的改写。

    enhance break

    • 如果配置了多条规则,若请求的URL匹配了当前规则,匹配执行完当前规则后,剩余规则将不再匹配。

    • 与break相似,但是增加了对URL中参数部分的改写能力。

  7. 单击确定,使改写规则开始执行和生效。

    您也可以在回源URL改写页面的规则列表中,单击修改删除,对当前配置的规则进行相应操作。

配置示例

示例一:执行空规则

待重写的Path

^/hello$

目标Path

/index.html

执行规则

结果说明

原始请求:http://example.com/hello

重写后的回源请求:http://example.com/index.html

该请求将会继续匹配重写回源路径规则列表中其余的规则。

示例二:执行break规则

待重写的Path

^/hello.jpg$

目标Path

/image/hello.jpg

执行规则

break

结果说明

原始请求:http://example.com/hello.jpg

重写后的回源请求:http://example.com/image/hello.jpg

该请求将不再继续匹配重写回源路径规则列表中其余的规则。

示例三:执行enhance break规则

待重写的Path

^/hello.jpg?code=123$

目标Path

/image/hello.jpg?code=321

执行规则

enhance break

结果说明

原始请求:http://example.com/hello.jpg?code=123

重写后的回源请求:http://example.com/image/hello.jpg?code=321

该请求将不再继续匹配重写回源路径规则列表中其余的规则。

示例四:在文件名是变量的情况下对根目录添加URL前缀

例如:将包含/xxx的URL(xxx代表任意文件名称,例如:/hello.jpg、/hello.html等等)重写为/image/xxx,即对根目录下的任意文件的URL都插入路径/image。

待重写的Path

^(.*)$

说明

^表示匹配字符串的开始位置;(.*)是一个分组,其中.表示匹配任意单个字符(除了换行符),*表示匹配前面的字符或分组零次或多次,可以在目标Path中通过$1来调用分组的变量内容;$表示匹配字符串的结束位置。所以,^(.*)$的意思是:匹配整个字符串,从开始到结束,中间可以包含任意字符(除了换行符),并将匹配到的内容捕获到一个分组中。例如,对于字符串"hello world"来说,^(.*)$会匹配整个字符串,并将"hello world"捕获到第一个分组中。

目标Path

/image$1

说明

/image表示匹配字符串"/image"$1表示引用第一个捕获分组的内容,$2表示引用第二个捕获分组的内容,依此类推。所以,/image$1的意思是:匹配字符串"/image"后面紧跟着第一个捕获分组的内容。例如,如果第一个捕获分组的内容是"abc",那么/image$1将匹配字符串"/imageabc"。需要注意的是,$1引用的是捕获分组的内容,而不是字面量"$1"。如果想要匹配字面量"$1",需要使用转义字符"\$1"

执行规则

break

结果说明

  • 原始请求:http://example.com/hello.jpg

    重写后的回源请求:http://example.com/image/hello.jpg

  • 原始请求:http://example.com/hello.html

    重写后的回源请求:http://example.com/image/hello.html

该请求将不再继续匹配回源URL重写规则列表中其余的规则。

示例五:在文件名是变量的情况下对指定目录添加URL前缀

例如:将包含/live/xxx的URL(xxx代表任意文件名称,例如:/live/hello.jpg、/live/hello.html 等等)重写为/image/live/xxx,即对目录/live下的任意文件的URL都插入路径/image。

待重写的Path

^/live/(.*)$

目标Path

/image/live/$1

执行规则

break

结果说明

  • 原始请求:http://example.com/live/hello.jpg

    重写后的回源请求:http://example.com/image/live/hello.jpg

  • 原始请求:http://example.com/live/hello.html

    重写后的回源请求:http://example.com/image/live/hello.html

该请求将不再继续匹配回源URL重写规则列表中其余的规则。

示例六:匹配多条规则时,执行空规则

配置两条规则如下图所示:

域名管理-改写回源URL1.png

结果说明:

  • 原始请求:http://example.com/image_01.png

  • 重写后的回源请求:http://example.com/image/image_02.png

    说明

    先匹配第一条规则,重写为http://example.com/image_02.png,继续匹配第二条规则,最终重写为http://example.com/image/image_02.png

示例七:匹配多条规则时,执行break规则

配置两条规则如下图所示:

域名管理-改写回源URL2.png

结果说明:

  • 原始请求:http://example.com/image_01.png

  • 重写后的回源请求:http://example.com/image_02.png

    说明

    先匹配第一条规则,重写为http://example.com/image_02.png,由于第一条规则设置为break,所以不再匹配后续规则。

相关文档

批量配置域名