如何防止访问子位置

How to prevent access to a subLocation

我有一个隐藏在 Apache 2.4 后面的 webapp,它被设置为代理

我的配置是这样的:

<Location /myapp>
Proxypass ajp://localhost:8009/myapp
Require all granted
</Location>

最近,我被要求阻止除白名单 IP 之外的任何人访问我的应用程序 API,该应用程序可通过 /myapp/api/

访问

我未能在 Apache 中实现正确的配置以使其如此

这是我到目前为止尝试过的方法:

<Location /myapp/api>
Proxypass ajp://localhost:8009/myapp/api
Require local
Require 1.2.3.4
</Location>


<Location /myapp>
Proxypass ajp://localhost:8009/myapp
Require all granted
</Location>

所以我需要的是 http://mysite/myapp/ to be accessible to anyone, but to restrict calls to http://mysite/myapp/api/* 到一堆白化 IP

你知道我怎样才能做到这一点吗?

此致

由于 Overlapping Webspace,您应该颠倒 Location 指令的顺序

 <Location /myapp>
Proxypass ajp://localhost:8009/myapp
Require all granted
</Location>

<Location /myapp/api>
Proxypass ajp://localhost:8009/myapp/api
Require local
Require 1.2.3.4
</Location>