You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat下Java Web应用Http转Https及WWW重定向无限循环问题

配置UrlRewriteFilter实现Http到Https、WWW到非WWW的统一重定向

刚好我之前也用UrlRewriteFilter处理过类似的重定向需求,给你整理了一套完整的配置方案,能完美实现你要的效果——把http://example.com、http://www.example.com、https://www.example.com这三个地址全部重定向到https://example.com(还能保留原请求的路径和参数,当然你也可以改成直接跳转到根域名)。

完整的urlrewrite.xml配置

我把规则合并成了一个,更简洁易维护:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
        "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
    <!-- 统一处理所有需要重定向的场景:非HTTPS请求 或 带www的HTTPS请求 -->
    <rule>
        <!-- 条件1:请求协议不是HTTPS -->
        <condition type="scheme" operator="notequal">https</condition>
        <!-- 条件2:请求主机是www.example.com(和条件1是"或"的关系) -->
        <condition type="host" operator="equal" next="or">www.example.com</condition>
        <!-- 匹配所有请求路径 -->
        <from>^/(.*)$</from>
        <!-- 301永久重定向到目标地址,$1保留原请求的路径和参数 -->
        <to type="permanent" last="true">https://example.com/$1</to>
    </rule>
</urlrewrite>

关键配置说明

  • type="permanent":返回301永久重定向,对SEO友好,浏览器也会缓存这个重定向规则,减少后续重复请求。
  • last="true":匹配到这个规则后就停止处理其他规则,避免出现多次重定向的问题。
  • $1:捕获原请求的路径部分(比如http://www.example.com/about里的about),确保重定向后用户能访问到对应的页面。如果不需要保留路径,直接把<to>标签里的内容改成https://example.com就行。

额外注意事项

  1. 确保你已经把UrlRewriteFilter的jar包放在Web应用的WEB-INF/lib目录下(对应4.0.3版本)。
  2. 检查web.xml里是否正确配置了过滤器,不然规则不会生效:
<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
  1. 记得把配置里的example.com替换成你实际使用的域名。
  2. 测试的时候可以打开浏览器开发者工具的「网络」面板,查看重定向的状态码是不是301,目标URL是否符合预期。

内容的提问来源于stack exchange,提问作者Rick77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:23:28