今天我一个兄弟,突然问我:http://localhost:8080/和http://localhost:8080/xxxx都能访问到工程的JSP页面.而他的要求是不允许这样的http://localhost:8080/xxxx的请求.
先说我的解决思路
1.nginx上修改凡是拦截到工程名的请求,统统重定向
2.修改tomcat/conf下的server.xml文件:
<Host name="www.my.com" appBase=""
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="webapps/xxx" reloadable="true"></Context>
</Host>
这样就可以做到去掉带工程名的请求
引申一下如果兼容工程名这样的请求,则需要这样做:
<Host name="www.my.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="xxx" reloadable="true"></Context>
</Host>
这样就可以了
本文详细介绍了如何通过NGINX配置和Tomcat server.xml文件修改来实现对带工程名的HTTP请求进行重定向,以解决访问控制需求。包括具体步骤和技术细节,帮助开发者实现更安全的请求路径管理。
1180

被折叠的 条评论
为什么被折叠?



