如何在URL中移除应用程序名称?Tomcat + Apache HTTP服务器

10

大家好

我使用Apache Click Framework创建了一个Web应用程序,并将其放在httpd后面的Tomcat中。

(假设我的域名是www.domain.com。) 因此,我可以通过URL访问我的应用程序:www.myDomain.com/myApp/pages/login.htm

我的问题是,如何通过httpd或tomcat的配置来删除此URL中的“myApp”部分?因为我的域名已经有一些像“myApp”这样的单词。


你需要进行URL重写,大多数框架都支持类似于Struts、Spring MVC的方式,你可以在Java Web应用程序的web.xml中进行配置。 - Rahul Agrawal
https://dev59.com/xWw05IYBdhLWcg3wYwxs#51167549 - Kanagavelu Sugumar
2个回答

8

只需将你的war文件命名为root.war并部署到Tomcat,如果它存在的话,你可能需要先删除Tomcat中预配置的ROOT/目录。


谢谢,听起来很快,但是...有点粗糙。 - Hetfield Joe
这是标准方式,因为只有一个应用程序可以是根。无需重新配置Tomcat,在任何安装中都可以直接使用。顺便说一下,它也适用于Jetty。 - Udo Klimaschewski
明白了,我会尝试。但是这对于 httpd 来说可以吗?我的意思是代理到 tomcat 的部分:"proxypass / /usr/local/tomcat/root"。 - Hetfield Joe
你是指 ProxyPass / ajp://localhost:8080/,对吗?可以运行。 - Udo Klimaschewski
我有同样的问题,我已经将war文件名更改为root,但不确定如何删除预配置的Root/目录。 - user2071377
3
我不得不将其重命名为ROOT.war(使用全大写)。使用root.war对我没有起作用。 - jovanchohan

3
您需要进行URL重写,大多数框架都支持,例如Struts、Spring MVC,在Java Web应用程序中可以在web.xml中进行配置。请检查是否可以通过以下方式在Tomcat server.xml中实现(但我不确定,URL重写将解决您的问题)。参考:http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html
在etc/hosts中添加类似以下的内容:
127.0.0.1 mydomain.com
更改server.xml:
<Host name="bbstats.localhost" appBase="webapps/myapp"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
</Host>


<Context path="/myapp" docBase="bbstats" debug="5" reloadable="true" crossContext="true"> 
</Context>

不错的想法,伙计。我通常只是将.war文件扔到tomcat webapp目录中,然后让它自己完成剩下的工作。我从未尝试过修改tomcat配置文件,因为我不知道那意味着什么。我会检查你的方法。顺便说一句,URL重写必须由框架支持才能使用吗? - Hetfield Joe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接