问题描述
我正在尝试使用prefix_regex
和regex_rewrite
大使。
我想要这两个路由前缀:
/my/route/<something>
/api/v1/my/route/<something>
将映射到:
/my/route/<something>
这就是我试图使用的:
apiVersion: ambassador/v2
kind: Mapping
prefix_regex: true
prefix: (/api/v1)?/my/route
regex_rewrite:
pattern: "/api/v1/my/route/(.*)"
substitution: "/my/route/\\1"
按预期使用regex_rewrite
和常规prefix
的效果
将prefix_regex
与常规rewrite
结合使用可以正常工作
但我会从特使那里收到404。
有什么想法吗?
我正在使用Ambassador 1.7.0版本
解决方法
通过在前缀末尾添加/.*来解决。
prefix: (/api/v1)?/my/route/.*
好像prefix_regex在前缀的末尾自动添加$
,这意味着我们需要指定映射的完整路径,而不仅仅是前缀。