Tomcat全局/局部HTTP自动跳转HTTPS协议、项目部署不加项目名自动跳转

本文介绍如何在Tomcat 8.5/8.0环境下配置HTTPS,包括修改server.xml中的连接器参数,设置SSL证书,以及在web.xml中配置安全约束以实现自动跳转到HTTPS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:Tomcat 8.5/8.0(Linux/Windows10均测试通过)

一、【全局】1.配置Tomcat conf目录下server.xml文件

(1) 打开/app/apache-tomcat/conf/server.xml,添加:

<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="path/to/cer" keystorePass="password" keyPass="password" keyAlias="passport"
           clientAuth="false" sslProtocol="TLS"/>

 

(2) 修改:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" URIEncoding="UTF-8" />

修改后:

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="443" URIEncoding="UTF-8" />

(3) 修改:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

修改后:

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

2. 配置conf/web.xml

添加代码如下(位置如图所示):

<security-constraint>
	<web-resource-collection >
		<web-resource-name >SSL</web-resource-name>
		<url-pattern>/*</url-pattern>
	</web-resource-collection>
	<user-data-constraint>
		<transport-guarantee>CONFIDENTIAL</transport-guarantee>
	</user-data-constraint>
</security-constraint>

此时在浏览器输入localhost即可实现自动跳转为https:localhost,同时出现证书信任提示(可能!)

 

二、【局部】

1. server.xml配置和全局中相同

2. conf/web.xml配置

<security-constraint>
	<web-resource-collection >
		<web-resource-name >SSL</web-resource-name>
		<url-pattern>/MyWebapp</url-pattern>
	</web-resource-collection>
	<user-data-constraint>
		<transport-guarantee>CONFIDENTIAL</transport-guarantee>
	</user-data-constraint>
</security-constraint>

注:MyWebapp为部署的项目名

3. webapps/MyWebapp/WEB-INF/web.xml配置

添加:

<security-constraint>
	<web-resource-collection>
		<web-resource-name>SSL</web-resource-name>
		<url-pattern>/jsp/*</url-pattern>
	</web-resource-collection>
	<user-data-constraint>
		<transport-guarantee>CONFIDENTIAL</transport-guarantee>
	</user-data-constraint>
</security-constraint>

注:实现/jsp目录下所有路径跳转

 

三、项目部署不加项目名自动跳转

打开Tomcat中/webapps/ROOT/index.jsp文件

删除index.jsp全部内容;添加:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script language="javascript" type="text/javascript">             
	window.location.href="/MyWebapp"; <!--跳转页面-->
</script>
“好像没跳诶!”
</head>
</html>

 

### 解决Tomcat服务器仅重定向至Index页面的方法 当遇到Tomcat服务器配置问题,特别是关于请求处理和路由设置时,通常是因为恰当的配置文件设定或默认行为未被修改所致[^1]。对于Tomcat服务器只跳转到index页面的情况,有几种可能的原因以及相应的解决方案。 #### 1. 配置web.xml中的欢迎文件列表 确保`$CATALINA_HOME/webapps/yourapp/WEB-INF/web.xml` 文件内定义了正确的欢迎文件列表。如果此部分缺失或是顺序对,则可能导致所有访问都指向第一个列出的文件,默认情况下可能是`index.html` 或 `index.jsp`: ```xml <welcome-file-list> <welcome-file>home.jsp</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> ``` 上述代码片段展示了如何调整欢迎页加载优先级,从而改变默认进入的应用程序入口。 #### 2. 修改context路径下的conf/context.xml 有时应用程序上下文根目录下存在特定于应用级别的`context.xml`文件也可能影响URL映射逻辑。检查并确认该文件内的参数会强制所有的请求都被导向首页。 #### 3. 调整server.xml中Host节点属性 在全局范围内的`$CATALINA_BASE/conf/server.xml` 中找到对应的 `<Host>` 标签,并查看是否有任何当设置干扰正常的服务响应机制。例如,某些时候错误地设置了自动部署选项可能会引起此类现象。 #### 4. 审查Spring Boot启动类注解 虽然这与原始问题关联大,但如果项目基于Spring框架构建的话,应当留意是否存在必要的控制器拦截器或其他组件意外改变了HTTP状态码或转发目标地址。比如,在使用`@SpringBootApplication` 注解时要小心引入额外的功能模块[^2]。 #### 5. 检查CAS服务端口重定向策略 假设正在使用的单点登录(Single Sign-On, SSO)方案涉及到了Central Authentication Service(CAS),那么需要注意其对外部链接的支持情况。通过适当配置cas.properties来控制登出后的重定向行为可以避免必要的主页重定位发生[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值