Tomcat

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Tomcat > tomcat去掉项目名称直接访问项目

tomcat如何去掉项目名称直接访问项目

作者:崩坏的芝麻

这篇文章主要介绍了tomcat如何去掉项目名称直接访问项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

tomcat去掉项目名称直接访问项目

需求:

把发布到Tomcat下的web项目,访问路径去掉项目名称

就是说我在服务器上发布的网页,不需要加项目名,根据端口号就能直接访问了

方法一

原理:

Tomcat的默认根目录是ROOT,实际上ROOT这个项目在实际生产环境是没有用的,所以我们可以用我们的项目覆盖ROOT项目

操作过程:

1.删除ROOT下所有文件及文件夹

2.把我们项目的war包解压后,项目目录下的所有文件和子目录都拷贝到ROOT目录下即可 或者干脆:直接删掉ROOT目录,然后把我们的项目打包名称改成ROOT.war,放到webapps下就行

方式二:(推荐)

原理:

Tomcat本身可以配置虚拟目录。方法就是在Server.xml中节点下加入Context信息。

如我们可以配置<Context path="/abc" docBase=“D:\app\abc” …/>,那我们可以通过地址http://localhost:8080/abc来访问我们放在D:\app\下面的abc项目。

我们可以把这个path="/abc"修改为path=""。

意思就是把abc映射到根目录,访问路径就会变成http://localhost:8080/。

操作过程:

按照配置虚拟目录的方式,在下添加一个Context节点,具体配置如下:

<Engine name="Catalina" defaultHost="localhost"...>  
...  
    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">  
    <Context path="" docBase="你的项目名" reloadable="true" />  
<!--注:我这里使用的是相对路径,项目是放在Tomcat的webapps目录下的,当然也可以改为绝对路径-->  
...  
    </Host>  
...  
</Engine>

如果端口是8080, 即可直接 http://ip:8080 就能访问

tomcat去掉项目名后,访问路径依旧有问题的解决方案

Tomcat去掉项目名后,能访问主页,却访问不了其他页面

将个人博客发布到服务器上后,blog.war包放在了/usr/local/tomcat/apache-tomcat-8.5.66/webapps目录下,然后打开server.xml增加如下配置,理论上可以去掉路径访问的项目名(这里项目名是blog)。

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/usr/local/tomcat/webapps/blog" reloadable="false"/>

出现的问题

http://161.62.71.204/只能访问主页,访问其他页面报404

访问http://161.62.71.204/ 后,确实能进入博客主页,但点击其他博客页面报404,如 访问http://161.62.71.204/blog/44,却找不到该文件

后来发现:必须加上项目名才能访问其他所有页面,如http://161.62.71.204/blog/blog/44

这样不符合当初去掉项目名的初衷

解决方案

在 appBase=“webapps"改成"webapps/项目名”

<Host name="localhost"  appBase="webapps/blog"
            unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/usr/local/tomcat/webapps/blog" reloadable="false"/>

http://161.62.71.204/就能访问所有页面了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文