全部產品
Search
文件中心

ApsaraVideo VOD:改寫回源URL

更新時間:Feb 10, 2026

ApsaraVideo for VOD支援在使用者請求需要回源時進行URL改寫,改寫不影響CDN的內部鏈路和緩衝key,只會在CDN節點向來源站點發送回源請求的時候使用改寫後的URL。通過本文您可以瞭解改寫回源URL功能的操作步驟。

工作原理

通過重寫回源URL規則,使請求URL與來源站點URL匹配,準確擷取來源站點的資源,或者傳遞指定的參數給來源站點。

  • 執行規則設定為“空”或者“break”的情況下,僅重寫URL中的資源路徑部分。

    無標題文檔-流程圖

  • 執行規則設定為“enhance_break”的情況下,能夠同時重寫資源路徑和請求參數。

    zh-enhance_break

注意事項

  • 單個網域名稱可以配置的重寫回源路徑規則數量上限是50個。

  • 規則重寫按照規則列表從上到下順序依次執行,因此順序可能會影響您的重寫結果。

  • 回源URL改寫功能在配置執行規則的情況下,對URL中參數的改寫可能會與網域名稱管理 > 效能最佳化頁簽下的忽略參數功能相衝突,同時配置的時候,需要注意避免配置衝突。

操作步驟

  1. 登入ApsaraVideo for VOD控制台

  2. 在左側導覽列選擇配置管理 > 分发加速配置 > 域名管理,進入到網域名稱管理頁面。

  3. 單擊目標網域名稱所在行的配置

  4. 在指定網域名稱的左側導覽列,單擊回源配置

  5. 單擊回源URL改寫頁簽。

  6. 單擊添加,並根據您的需求,配置待改寫的Path、目標Path和執行規則。

    重要

    規則改寫按照回源URL改寫頁面的規則列表從上到下順序執行,此順序可能會影響您的改寫結果。

    參數

    樣本

    說明

    待改寫的Path

    ^/hello$

    以正斜線(/)開頭的URL,不含http://頭及網域名稱。支援PCRERegex。

    目標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,所以不再匹配後續規則。

相關文檔

大量設定網域名稱