【问题标题】:Removing app name from url in proxypassreverse setup在 proxypassreverse 设置中从 url 中删除应用程序名称
【发布时间】:2014-08-30 20:30:32
【问题描述】:

我已经能够以我在互联网上进行一些研究(复制粘贴)后发现的方式将我的应用程序映射到域。

<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 中的应用程序名称。

【问题讨论】:

  • 使用RewriteRule的代理标志([P])应该这样做:RewriteRule ^/$ http://example.com/MyApp [P]
  • 如果您可以控制 docroot,也可以将其设置为 /MyApp
  • 我可以控制我的服务器。您能否发布与 docroot 相关的答案,以便我试一试。我尝试了 [p] 标志,但没有用。

标签: java apache tomcat servlets tomcat7


【解决方案1】:

将您的 war 文件重命名为 ROOT.war,使其成为 Tomcat 中的根 webapp。然后在 Apache 配置中相应地调整路径:

ProxyPass        / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

【讨论】:

  • 是的,这基本上会将所有请求代理到 Tomcat。当然,您只能拥有一个根 webapp,但您可以拥有其他带有上下文名称的 webapp。
猜你喜欢
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 2013-08-09
  • 1970-01-01
  • 2015-01-12
相关资源
最近更新 更多