為了避免回源請求URI與來源站點URI不匹配導致的回源失敗,您可以通過配置回源URI改寫功能將回源請求URI修改為與來源站點匹配的URI,從而提升回源命中率。通過本文您可以瞭解配置重寫規則的操作步驟。

注意事項

  • 單個網域名稱可以配置的 回源URI改寫 規則數量上限是50個。
  • 規則改寫按照規則列表從上到下順序執行的,此順序可能會影響您的改寫結果。
  • 回源URI改寫 功能與 重寫 功能的區別在於, 重寫 功能的作用位置是在CDN邊緣節點上面,會影響CDN內部鏈路,也會改寫緩衝key,而 回源URI改寫 功能的作用位置是在CDN回源節點上面,不影響CDN內部鏈路,不改寫緩衝key。
  • 回源URI改寫 功能在配置執行規則的情況下,對URL中參數的改寫可能會與 網域名稱管理 > 效能最佳化 頁簽下的 過濾參數(可保留指定參數)過濾參數(可刪除指定參數)功能相衝突,這三個功能同時配置的時候,需要注意避免配置衝突。

配置回源URI

  1. 登入 CDN控制台
  2. 在左側導覽列,單擊 域名管理
  3. 域名管理頁面,單擊目標網域名稱對應的 管理
  4. 在指定網域名稱的左側導覽列,單擊 回源配置
  5. 單擊 回源URI改写頁簽。
  6. 單擊 添加
  7. 根據您的需求,配置需要改寫的URI、目標URI和執行規則。
    參數 樣本 說明
    需要改寫的URI ^/hello$ 以正斜線(/)開頭的URI,不含http://頭及網域名稱。支援PCRERegex。
    目標URI /hello/test 以正斜線(/)開頭的URI,不含http://頭及網域名稱。
    執行規則 如果配置了多條規則,在匹配執行當前規則後,繼續匹配後續規則。
    break
    • 如果配置了多條規則,若請求的URI匹配了當前規則,匹配執行完當前規則後,剩餘規則將不再匹配。
    • 只修改URI部分,不修改URL的參數,不影響 回源參數改寫 功能對URL中參數的改寫。
    enhance break
    • 如果配置了多條規則,若請求的URI匹配了當前規則,匹配執行完當前規則後,剩餘規則將不再匹配。
    • 對URI中參數的改寫可能會與 回源參數改寫功能對URL中參數的改寫相衝突,這兩個功能同時配置的時候,需要注意避免配置衝突。
  8. 單擊 确定,使改寫規則開始執行和生效。

    您也可以在 回源URI改寫 頁面的規則列表中,單擊 修改 刪除 ,對當前配置的規則進行相應操作。

範例

  • 範例一:執行空規則。
    待改寫URI ^/hello$
    目標URI /index.html
    執行規則
    結果說明 原始請求: http://domain.com/hello

    改寫後的回源請求: http://domain.com/index.html

    該請求將會繼續匹配 回源URI改寫 規則列表中其餘的規則。

  • 範例二:執行break規則。
    待改寫URI ^/hello.jpg$
    目標URI /image/hello.jpg
    執行規則 break
    結果說明 原始請求: http://domain.com/hello.jpg

    改寫後的回源請求: http://domain.com/image/hello.jpg

    該請求將不再繼續匹配 回源URI改寫 規則列表中其餘的規則。

  • 範例三:執行enhance break規則。
    待改寫URI ^/hello.jpg?code=123$
    目標URI /image/hello.jpg?code=321
    執行規則 enhance break
    結果說明 原始請求: http://domain.com/hello.jpg?code=123

    改寫後的回源請求: http://domain.com/image/hello.jpg?code=321

    該請求將不再繼續匹配 回源URI改寫 規則列表中其餘的規則。
  • 範例四:在檔案名稱是變數的情況下對根目錄添加URI首碼。

    例如:將包含/xxx的URI(xxx代表任意檔案名稱,例如:/hello.jpg、/hello.html等等)改寫為/image/xxx,即對根目錄下的任意檔案的URI都插入路徑/image。

    待改寫URI ^(.*)$
    说明 ^(.*)$代表任一字元,()代表的是一個分組,可以在目標URI中通過$1來調用分組的變數內容。
    目標URI /image$1
    说明 $1表示Regex中第一對圓括弧中的運算式匹配到的內容,$2是第二個小括弧裡面的內容,依此類推。
    執行規則 break
    結果說明
    • 原始請求: http://domain.com/hello.jpg

      改寫後的回源請求: http://domain.com/image/hello.jpg

    • 原始請求: http://domain.com/hello.html

      改寫後的回源請求: http://domain.com/image/hello.html

    該請求將不再繼續匹配 回源URI改寫 規則列表中其餘的規則。
  • 範例五:在檔案名稱是變數的情況下對指定目錄添加URI首碼。
    例如:將包含/live/xxx的URI(xxx代表任意檔案名稱,例如:/live/hello.jpg、/live/hello.html 等等)改寫為/image/live/xxx,即對目錄/live下的任意檔案的URI都插入路徑/image。
    待改寫URI ^/live/(.*)$
    目標URI /image/live/$1
    執行規則 break
    結果說明
    • 原始請求: http://domain.com/live/hello.jpg

      改寫後的回源請求: http://domain.com/image/live/hello.jpg

    • 原始請求: http://domain.com/live/hello.html

      改寫後的回源請求: http://domain.com/image/live/hello.html

    該請求將不再繼續匹配 回源URI改寫 規則列表中其餘的規則。