URI 模板重寫配置 (proto)

此擴展的完整名稱為 envoy.path.rewrite.uri_template.uri_template_rewriter

注意

此擴展旨在針對不受信任的下游和上游流量都具有穩健性。

提示

此擴展擴展並可與以下擴展類別一起使用

此擴展必須配置以下其中一種 type URL

extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig

[extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig proto]

表示在轉發期間,路徑中符合模式的部分應該被重寫,甚至允許將匹配模式中的變數替換為新的路徑,如重寫模板所指定。這對於允許應用程式路徑以感知具有可變內容(如識別碼)的片段的方式進行重寫非常有用。路由篩選器將把重寫前的原始路徑放置在 x-envoy-original-path 標頭中。

只能指定 prefix_rewriteregex_rewritepath_template_rewrite 其中之一。

模板模式匹配類型

  • * : 匹配單個路徑組件,直到下一個路徑分隔符:/

  • ** : 匹配零個或多個路徑片段。如果存在,則必須是最後一個運算符。

  • {name} {name=*}:一個命名的變數,匹配一個路徑片段,直到下一個路徑分隔符:/。

  • {name=videos/*}一個命名的變數,匹配多個路徑片段。

    匹配 videos/* 的路徑組件會被捕獲為命名的變數。

  • {name=**} : 一個命名的變數,匹配零個或多個路徑片段。

只有命名的匹配才能用於執行重寫。

使用 path_template_rewrite 的範例

  • 模式 /{one}/{two} 與替換字串 /{two}/{one} 配對,會將 /cat/dog 轉換為 /dog/cat

  • 模式 /videos/{language=lang/*}/* 與替換字串 /{language} 配對,會將 /videos/lang/en/video.m4s 轉換為 lang/en

  • 路徑模式 /content/{format}/{lang}/{id}/{file}.vtt 與替換字串 /{lang}/{format}/{file}.vtt 配對,會將 /content/hls/en-us/12345/en_193913.vtt 轉換為 /en-us/hls/en_193913.vtt

{
  "path_template_rewrite": ...
}
path_template_rewrite

(字串必填)