Tomcat虚拟主机可通过两个URL访问

我有一些在Tomcat上部署的Web应用程序,使用以下configuration:

<Engine ...> <Host name="a.mycompany.com" ...> <Host name="b.mycompany.com" ...> <Host name="c.mycompany.com" ...> </Engine> 

对于这些应用程序中的每一个,我都可以通过以下两个URL访问它们:

 http://x.mycompany.com/ http://x.mycompany.com/x 

其中xabc

这是正常的,还是我做错了什么?

是的,这是默认configuration。

您已经将所有3个Web应用程序部署在单个Tomcat实例上,因此默认情况下它们可以被访问

http://<some-domain-url>/x其中x = a,bc

你是否想限制模式?

http://a.mycompany.com/ahttp://b.mycompany.com/b

禁止 http://a.mycompany.com/b

然后尝试通过您的.net文件中的server.xml中的<Context>元素来嵌套Web应用程序

 <Host name="a.mycompany.com" ...> 

像这样:

 <Host name="a.mycompany.com" appBase="webapps"> <Context path="/a" docBase="/a/"/> </Host> <Host name="b.mycompany.com" appBase="webapps"> <Context path="/b" docBase="/b/"/> </Host> 

如果path设置为""那么您可以在ROOT上下文中获取应用程序,例如a.mycompany.com而不是a.mycompany.com/a