Apache 如何决定使用哪个 LocationMatch?

时间:2021-05-06 07:51:23

标签: apache proxy 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 是否有任何规则或特定顺序?我可以将 /(.*) 正则表达式视为始终优先于类似表达式的所有表达式吗?

0 个答案:

没有答案
相关问题