2014-08-30 73 views
0

我已經能夠以我在互聯網上進行一些研究(複製粘貼)後發現的方式將我的應用程序映射到域。在proxypassreverse設置中從url中刪除應用程序名稱

<VirtualHost *:80> 
    ServerName example.com 
    ProxyPass  /MyApp http://localhost:8080/MyApp 
    ProxyPassReverse /MyApp http://localhost:8080/MyApp 
    ProxyPassReverseCookieDomain localhost example.com 
    ProxyPreserveHost On 


RewriteEngine on 

    RewriteRule ^/$ http://example.com/MyApp 
</VirtualHost> 

重寫工作正常,每當我打開example.com它重定向到example.com/MyApp。我的問題是,如何在不重定向的情況下,如何讓它不重定向並在example.com/上傳遞MyApp。只需簡單地將MyApp映射到域的根即可。重寫工作正常,但當然不希望在URL中的應用程序名稱。

+0

使用的[重寫規則]代理標誌('[P]')(http://httpd.apache.org/docs/2.2/mod/mod_rewrite。 html#rewriterule)應該這樣做:'RewriteRule ^/$ http://example.com/MyApp [P]' – iamnotmaynard 2014-08-30 20:33:56

+0

如果你有對docroot的控制,它可能也會將它設置爲'/ MyApp' – iamnotmaynard 2014-08-30 20:35:25

+0

我在控制我的服務器。你能否請你發佈與docroot有關的答案,以便我可以試一試。我試過[p]標誌但不起作用。 – akshayb 2014-08-30 20:40:49

回答

0

將您的war文件重命名爲ROOT.war,使其成爲Tomcat中的根webapp。然後相應地調整路徑在Apache的配置:

ProxyPass  /http://localhost:8080/ 
ProxyPassReverse/http://localhost:8080/ 
+0

但它會在有多個應用程序時工作嗎? – akshayb 2014-08-31 06:43:10

+0

是的,這基本上將所有請求代理到Tomcat。當然,你只能擁有一個root webapp,但你可以使用上下文名稱。 – 2014-08-31 13:09:22

相關問題