主题说的一切。我想要的是将每个子域映射到webapp,如:
http://root.domain.com:8080 -> http://domain.com:8080/
http://manager.domain.com:8080 -> http://domain.com:8080/manager
http://abc.domain.com:8080 -> http://domain.com:8080/abc
http://def.domain.com:8080 -> http://domain.com:8080/def
在localhost机器上,这将是
http://root.localhost:8080 -> http://localhost:8080/
http://manager.localhost:8080 -> http://localhost:8080/manager
http://abc.localhost:8080 -> http://localhost:8080/abc
http://def.localhost:8080 -> http://localhost:8080/def
理想情况下,我想使用端口80而不是8080,但这是另一个故事。我很乐意首先使用端口8080,这样URL末尾的路径就会消失。
注意,箭头不是重定向,但如果我按原样离开Tomcat,我会输入。
我知道Tomcat文档页面http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html。我已多次阅读,但没有取得多大进展。我编辑了etc / hosts以添加127.0.0.1 bbstats.localhost。然后我添加了
<Host name="bbstats.localhost" appBase="webapps/bbstats"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
到conf目录中的Tomcat的server.xml。我的webapp的context.xml是:
<Context path="/bbstats" docBase="bbstats" debug="5" reloadable="true" crossContext="true">
</Context>
重启Tomcat。通过Ant重新部署。进入时
http://bbstats.localhost:8080/
进入浏览器,我得到一个空白屏幕。
当使用appBase =“webapps”而不是appBase =“webapps / bbstats”时,我会看到Tomcat的root应用程序。后一种行为是预期的。但是如何让bbstats.localhost:8080转到bbstats webapp而没有URL中的尾随/ bbstats?
答案 0 :(得分:28)
您是否可以尝试通过提供<Host>
将每个Web应用程序嵌套在server.xml中的path=""
中作为根webapp应用程序。我自己没试过。
<Host name="bbstats.localhost" appBase="webapps">
<Context path="" docBase="/bbstats/"/>
</Host>
<Host name="tomcatstuff.localhost" appBase="webapps">
<Context path="" docBase="/tomcatstuff/"/>
</Host>