Apache-2.2

從 ProxPass 指令中排除根目錄,但保留根目錄下的所有內容

  • December 11, 2013

我在 Tomcat 實例前執行 Apache。Apache 代理每個通過的請求並將其傳遞給 Tomcat。目前配置是 ApacheProxyPass在根 (/) 上放置一個。然而,有新的要求,指定對域根的呼叫應返回靜態啟動頁面,並且應代理任何其他呼叫。

這表示:

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

製作多個 ProxPass 指令不是一個好主意,因為 Tomcat 實例必須支持很多路徑,而且其中許多會發生變化。

將對普通 www.domain.com 的任何請求重定向到 www.domain.com/index.html,然後在將其他所有內容轉發到 Tomcat 之前添加代理排除:

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

另一種可能的解決方案:

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

引用自:https://serverfault.com/questions/560659