URI 模板重写配置 (proto)

此扩展的限定名称为 envoy.path.rewrite.uri_template.uri_template_rewriter

注意

此扩展旨在对不可信的下游和上游流量都具有鲁棒性。

提示

此扩展扩展并可与以下扩展类别一起使用

此扩展必须使用以下类型 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} or {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

(string, REQUIRED)