主题说明了一切。我想要的是将每个子域映射到一个Web应用程序,例如:
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
在本地主机上,这将是
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。我的Web应用程序的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的根应用程序。后一种行为是预期的。但是,如何使bbstats.localhost:8080转到bbstats网络应用程序而在URL中没有尾随/ bbstats呢?
您能否<Host>通过给出尝试将每个Web应用程序嵌套在server.xml中的根Web应用程序中path=""?我还没有亲自尝试过。
<Host>
path=""
<Host name="bbstats.localhost" appBase="webapps"> <Context path="" docBase="/bbstats/"/> </Host> <Host name="tomcatstuff.localhost" appBase="webapps"> <Context path="" docBase="/tomcatstuff/"/> </Host>