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

Jetty 9.4.8 URL重写配置设置报错,寻求解决方案

在Jetty 9.4.8中配置URL重写

我来分享一下Jetty 9.4.8中配置URL重写的完整示例配置,结合你给出的片段补全关键部分,方便你参考:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.server.handler.ContextHandler">
  <Set name="handler">
    <New id="Rewrite" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
      <Set name="handler">
        <New class="org.eclipse.jetty.webapp.WebAppContext">
          <!-- 配置你的Web应用核心参数 -->
          <Set name="contextPath">/your-app</Set>
          <Set name="war">/path/to/your/application.war</Set>
          <!-- 或者指定本地资源目录 -->
          <!-- <Set name="resourceBase">/path/to/your/webapp/resources</Set> -->
        </New>
      </Set>
      <!-- 添加具体的URL重写规则 -->
      <Call name="addRule">
        <Arg>
          <New class="org.eclipse.jetty.rewrite.handler.RewriteRule">
            <Set name="regex">^/old-api/(.*)$</Set>
            <Set name="replacement">/v2/api/$1</Set>
          </New>
        </Arg>
      </Call>
      <!-- 添加301永久跳转规则 -->
      <Call name="addRule">
        <Arg>
          <New class="org.eclipse.jetty.rewrite.handler.RedirectRule">
            <Set name="regex">^/legacy-page$</Set>
            <Set name="location">/new-home</Set>
            <Set name="statusCode">301</Set>
          </New>
        </Arg>
      </Call>
    </New>
  </Set>
</Configure>

核心配置要点:

  • RewriteHandler角色:作为请求的前置处理器,所有请求会先经过这里的规则匹配,再转发到后续的WebAppContext处理,实现内部重写或外部跳转。
  • 规则类型选择:Jetty提供了多种规则实现,比如RewriteRule适合内部路径重写(浏览器地址栏不变),RedirectRule适合外部跳转(地址栏会更新),还有RewritePatternRule可以用简化的通配符匹配。
  • 模块化部署注意:如果用Jetty的模块化启动方式,需要先启用rewrite模块,执行命令:java -jar start.jar --add-to-start=rewrite,确保重写功能生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:21:06