问题描述
我们使用 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 (将#修改为@)