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

如何通过Tomcat配置为特定部署应用设置维护跳转页面?

当然可以!仅靠Tomcat自带配置就能搞定

不用改一行应用代码,就能精准拦截单个应用的所有请求,重定向到维护静态页。下面给你最实用的两种实现方式:

方案一:用RewriteValve(推荐,灵活好管控)

这是Tomcat官方提供的URL重写工具,专门用来处理这类请求路由需求,步骤超简单:

  1. 找对配置文件:

    • 如果你能修改应用包,就在应用的META-INF目录下新建/编辑context.xml
    • 要是不想碰应用包,就去Tomcat的conf/Catalina/[你的主机名]/[应用上下文名].xml(比如localhost下的myapp.xml)
  2. 写入重写规则:
    在<Context>标签里加这段配置,记得把your-app换成你的应用路径,maintenance.html换成你准备的维护页面路径:

<Context>
  <Valve className="org.apache.catalina.valves.rewrite.RewriteValve">
    <!-- 排除维护页面本身,防止无限循环重定向 -->
    <RewriteCond %{REQUEST_URI} !^/your-app/maintenance.html$
    <!-- 把所有其他请求重定向到维护页,返回503(服务不可用)状态码 -->
    <RewriteRule ^(.*)$ /your-app/maintenance.html [R=503,L]
  </Valve>
</Context>
  1. 准备维护页面:
    在应用的web根目录放个maintenance.html,内容随便写,比如:
<!DOCTYPE html>
<html>
<head>
    <title>维护通知</title>
    <style>body {text-align: center; margin-top: 100px;}</style>
</head>
<body>
    <h1>📢 应用正在计划维护</h1>
    <p>我们会尽快恢复服务,感谢您的耐心等待!</p>
</body>
</html>
  1. 生效配置:
    重启Tomcat,或者在Tomcat管理后台reload这个应用就行。

方案二:用Error Page + 请求拦截(适合极简场景)

如果不想用重写规则,也可以通过错误页面配置实现:

  1. 修改应用的web.xml:
    在<web-app>里加这段,把503错误指向维护页:
<error-page>
    <error-code>503</error-code>
    <location>/maintenance.html</location>
</error-page>
  1. 添加拦截Valve:
    同样在Context配置文件里加这个Valve,让所有请求都返回503错误,触发上面的错误页面:
<Context>
  <Valve className="org.apache.catalina.valves.ErrorReportValve">
    <Override>
        public void invoke(Request request, Response response) throws IOException, ServletException {
            response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
        }
    </Override>
</Context>

不过这个方法需要写一点点Java代码片段,不如方案一省心,所以优先推荐方案一。

小提示

  • 用503状态码是行业标准,搜索引擎会识别并暂停抓取,比普通的302重定向更合适。
  • 维护完之后,只要把Context里的Valve配置注释掉,reload应用就恢复正常了,超方便。
  • RewriteValve从Tomcat7开始就自带了,现在大部分环境都是Tomcat8及以上,直接用就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:37:36