gpt4 book ai didi

java - 如何使用 urlRewriteFilter 永久重定向带参数的 JSP?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:45 29 4
gpt4 key购买 nike

我们正在将旧的基于 JSP 的 Web 应用程序移动到 Spring MVC Controller 并使用 urlRewriteFilter ( http://tuckey.org/urlrewrite/ ) 进行重定向。

我们需要将带有参数的旧 JSP 永久重定向到 Controller View :

FROM: /products/product-detail.jsp?productId=666
TO: /product-detail?id=666

这里重要的是使用 type="permanent-redirect" 因为我们需要重定向对 SEO 友好。

我看过很多使用 urlRewriteFilter 的示例和帖子,所有这些都涉及重写不带参数的普通 JSP,例如some.jsp 到/newurl

目前唯一的成就是使用forward:

<rule>
<name>Product Detail Old</name>
<from>^/products/product-detail.jsp(.*)$</from>
<to type="forward">/product-detail</to>
</rule>

但这当然根本不会重写 URL:

结果为:/products/product-detail.jsp?productId=666

我们也试过这个,但它不起作用:

<rule>
<from>/products/product-detail.jsp?(.+)</from>
<to type="permanent-redirect">/product-detail?$1</to>
</rule>

结果为 /product-detail?p

有没有人可以帮助构建满足上述条件的规则urlRewriteFilter?

帮助最感激。

最佳答案

它不会自行重写...正如我在手册中找到的 <from>仅使用不带查询字符串的 URL 字符串。为了能够使用查询字符串,我们需要添加 <urlrewrite use-query-string="true">在此之后它就像一个魅力!所以最终规则:

<urlrewrite use-query-string="true">

<!-- more rules here if needed.... -->
<rule>
<from>^/products/product-detail.jsp\?productId=([0-9])$</from>
<to type="permanent-redirect">/product-detail?id=$1</to>
</rule>

</urlrewrite>

关于java - 如何使用 urlRewriteFilter 永久重定向带参数的 JSP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15678704/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com