今天发现生产上tomcat项目 仅用ip+端口 就能访问项目,觉得很奇怪,百思不得其解,各种尝试,终于找出原因

例: http://192.168.50.248:8081/login.htm 能直接进入项目的登录页面 http://192.168.50.248:8081/project/login.htm 也能进入项目的登录页面

于是,我本地tomcat尝试了下,发现如果不加项目名,访问就404了, 后来我加了项目名,登录页面能访问,但是登录成功,跳转到index.htm的时候,项目名又不见了 而且响应又是404

后面发现,原来是tomcat默认启动项目惹的祸,如果配置了tomcat默认启动项目,就可以不用项目名也能访问项目

具体操作如下:

1、打开tomcat安装根目录,打开conf目录下service.xml,找到<Host>节点,并且在该节点下新增: <Context docBase="/home/tomcat/webapps/project" path="" debug="0" reloadable="true" />
说明:紫色部位为 你的项目路径,由于我是放到webapps目录下,所以就指向webapps

2、打开tomcat目录下的webapps目录,找到ROOT项目,将其改成另一个名字

3、重启Tomcat

重启成功后就能直接在浏览器中用 ip地址+端口 访问项目了 例:http://localhost:8081/login.htm

最后:我还存在一个疑问,按道理我最开始的路径有项目名,那么我接下来的 相对路径请求 应该也会带有项目名的 就好像http://192.168.50.248:8081/project/login.htm 请求是可以访问登录页面的,但是为什么我请求成功,return "/index" 的时候, 按正常来说应该返回到http://192.168.50.248:8081/project/index.htm
可是返回的时候把项目名也丢了,地址变成了http://192.168.50.248:8081/index.htm ,这就是我很疑问的地方,试了很多地方,也不知道哪里配置的