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

Tomcat 7 URL重定向问题:无需第三方工具通过配置实现跳转

当然可以实现!Tomcat本身就自带了RewriteValve组件,完全不需要依赖Tuckey或者Apache httpd这类第三方工具就能搞定你要的重定向需求。下面给你两种实用的配置方式,你可以根据自己的场景来选:

方法一:针对特定域名配置(修改server.xml)

这种方式适合给单个Host(也就是你的www.mydomain.com域名)配置全局重定向规则,步骤如下:

  1. 打开Tomcat安装目录下的conf/server.xml文件,找到对应www.mydomain.com的<Host>节点。
  2. 在该Host节点内添加RewriteValve配置:
<Host name="www.mydomain.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
    <!-- 保留你原有的Host配置内容 -->
    <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
</Host>
  1. 在Tomcat的conf目录下创建一个名为rewrite.config的文件,写入重定向规则:
# 匹配来源域名是www.mydomain.com的请求
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
# 将/value开头的请求重定向到目标域名,保留后续路径参数
RewriteRule ^/value(.*)$ https://www.otherdomain.com/value$1 [R=301,L]
方法二:Web应用级别配置(无需修改server.xml)

如果/value是某个特定Web应用的路径,你可以直接在该应用内部配置,不影响其他应用:

  1. 找到目标Web应用的META-INF目录(如果没有就新建一个),创建context.xml文件并添加以下内容:
<Context>
    <Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
</Context>
  1. 在该Web应用的WEB-INF目录下创建rewrite.config文件,写入和上面完全相同的规则即可。

额外说明

  • 如果你的规则很简单,也可以不用单独创建rewrite.config,直接把规则写在Valve的rewrite属性里,比如:
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" rewrite='
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteRule ^/value(.*)$ https://www.otherdomain.com/value$1 [R=301,L]
' />
  • R=301表示永久重定向,适合长期的域名迁移;如果只是临时重定向,可以改成R=302。
  • 注意:RewriteValve是从Tomcat 7版本开始引入的,如果你用的是更早的版本,可能需要升级Tomcat版本。
  • 配置完成后,记得重启Tomcat让配置生效,测试时建议清除浏览器缓存(避免旧的重定向缓存影响结果)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:33:20