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_rewrite、regex_rewrite 或 path_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
(字串,必填)