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

如何用UrlRewriteFilter实现地址栏URL截断为固定短链接?

UrlRewriteFilter 实现地址栏固定显示根域名的规则配置

核心思路

要实现地址栏显示固定短链接,必须使用**外部重定向(redirect)**而非内部转发(forward)——因为内部转发不会修改浏览器地址栏,这是多数配置无效的关键原因。规则需覆盖所有目标路径(/s/、/s/v、带参数的/s/v/?xxx等),并确保重定向后不会触发循环。

具体规则配置(urlrewrite.xml)

<urlrewrite>
    <!-- 匹配所有以/s/开头的路径(含子路径、带参数的情况) -->
    <rule>
        <from>^/s/(.*)$</from>
        <to type="redirect">https://www.domaine.com/</to>
    </rule>

    <!-- 单独匹配不带斜杠的/s/v路径(避免被第一个规则遗漏) -->
    <rule>
        <from>^/s/v$</from>
        <to type="redirect">https://www.domaine.com/</to>
    </rule>
</urlrewrite>

规则细节说明

  • 正则匹配逻辑:
    • ^/s/(.*)$ 匹配所有以/s/开头的请求,包括/s/、/s/v/、/s/v/?foo=bar等;
    • ^/s/v$ 专门匹配不带结尾斜杠的/s/v路径,避免遗漏。
  • 重定向类型:type="redirect"会触发浏览器302临时重定向(如需永久重定向,可改为type="redirect-permanent"),强制浏览器更新地址栏为目标URL。
  • 避免循环:重定向后的路径是根域名/,不会匹配任何规则的from正则,因此不会出现循环重定向问题。

额外注意事项

  1. 确保Web项目中web.xml里的UrlRewriteFilter映射范围为/*,让所有请求都经过过滤器:
<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>
</filter-mapping>
  1. 若需保留原请求的GET参数(需求中未提及,仅作补充),可在to标签中添加%{query-string},例如:<to type="redirect">https://www.domaine.com/?%{query-string}</to>。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:27:12