為了避免回源請求URI與來源站點URI不匹配導致的回源失敗,您可以通過配置回源URI改寫功能將回源請求URI修改為與來源站點匹配的URI,從而提升回源命中率。通過本文您可以瞭解配置重寫規則的操作步驟。
注意事項
- 單個網域名稱可以配置的 回源URI改寫 規則數量上限是50個。
- 規則改寫按照規則列表從上到下順序執行的,此順序可能會影響您的改寫結果。
- 回源URI改寫 功能與 重寫 功能的區別在於, 重寫 功能的作用位置是在CDN邊緣節點上面,會影響CDN內部鏈路,也會改寫緩衝key,而 回源URI改寫 功能的作用位置是在CDN回源節點上面,不影響CDN內部鏈路,不改寫緩衝key。
- 回源URI改寫 功能在配置執行規則的情況下,對URL中參數的改寫可能會與 頁簽下的 過濾參數(可保留指定參數)或 過濾參數(可刪除指定參數)功能相衝突,這三個功能同時配置的時候,需要注意避免配置衝突。
配置回源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
改寫後的回源請求:
該請求將不再繼續匹配 回源URI改寫 規則列表中其餘的規則。http://domain.com/image/hello.jpg?code=321
- 範例四:在檔案名稱是變數的情況下對根目錄添加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首碼。 例如:將包含/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
- 原始請求: