是否可以在同一路径映射上使用大使prefix_regex和regex_rewrite?

问题描述

我正在尝试使用prefix_regexregex_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在前缀的末尾自动添加$,这意味着我们需要指定映射的完整路径,而不仅仅是前缀。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...