从 ProxPass 指令中排除根,但保留根以下的所有内容

从 ProxPass 指令中排除根,但保留根以下的所有内容

我在 Tomcat 实例前运行 Apache。Apache 代理通过的每个请求并将其传递给 Tomcat。当前配置是 ApacheProxyPass在根 (/) 上放置一个。但是,有新的要求,指定对域根的调用应返回静态启动页面,并且任何其他调用都应通过代理。

这意味着:

www.domain.com -> static page
www.domain.com/username - proxy to Tomcat

制定多个 ProxPass 指令并不是一个好主意,因为有很多路径必须由 Tomcat 实例支持,而且其中许多路径都会发生变化。

答案1

将对普通 www.domain.com 的所有请求重定向到 www.domain.com/index.html,然后在将其他所有内容转发到 Tomcat 之前添加代理排除:

RewriteRule  ^/$                 /index.html
ProxyPass /index.html !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

答案2

另一个可能的解决方案:

<LocationMatch "/.+">
     # ProxyPass directives
</LocationMatch>

相关内容