Apache 如何决定使用哪个 LocationMatch?

问题描述

我们使用 Apache 2.4 将请求代理到我们的后端服务。为了做到这一点,我们使用一些 LocationMatch 指令将请求交给正确的服务。我们的两个 LocationMatch 指令如下所示:

<LocationMatch "^/api/backend$">
    // Proxy request to http://backend-service
</LocationMatch>
<LocationMatch "^/api/(.*)$">
   // Proxy request to http://api-service
</LocationMatch>

如果您访问例如 http://localhost/api/some/api/stuff,则第二条规则适用(这是正确的)

如果您访问 http://localhost/api/backend,第二条规则也适用(我认为这是不对的)

我不明白为什么它总是使用第二个 LocationMatch 虽然 http://localhost/api/backend 应该是第一个正则表达式的直接匹配。 Apache 评估他的 LocationMatch regex 是否有任何规则或特定顺序?我可以将 /(.*) 正则表达式视为始终优先于类似表达式的所有表达式吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

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