首页 文章

如何将子域映射到Tomcat 6上的webapp(包括root webapp)?

提问于
浏览
21

科目说的一切 . 我想要的是将每个子域映射到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

在本地主机上这将是

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?

1 回答

  • 28

    您是否可以尝试通过提供 path="" 将每个Web应用程序嵌套在server.xml中的 <Host> 中作为根webapp . 我自己没试过 .

    <Host name="bbstats.localhost" appBase="webapps">
        <Context path="" docBase="/bbstats/"/>
    </Host>
    
    <Host name="tomcatstuff.localhost" appBase="webapps">
        <Context path="" docBase="/tomcatstuff/"/>
    </Host>
    

相关问题