Url rewriting URL重写筛选器无法处理包含特殊字符的查询参数

Url rewriting URL重写筛选器无法处理包含特殊字符的查询参数,url-rewriting,filter,seo,tuckey-urlrewrite-filter,Url Rewriting,Filter,Seo,Tuckey Urlrewrite Filter,我正在使用URL重写过滤器将一些丑陋的URL转发到漂亮的URL。 指, 我已经使用URLEwriteFilter做了一些事情,这实际上是使我的站点能够进行谷歌爬网所必需的。 事情是这样的 <rule enabled="true"> <note> The rule means that requests to /test/status/ will be redirected to /rewrite-status

我正在使用URL重写过滤器将一些丑陋的URL转发到漂亮的URL。 指, 我已经使用URLEwriteFilter做了一些事情,这实际上是使我的站点能够进行谷歌爬网所必需的。 事情是这样的

<rule enabled="true">
        <note>
            The rule means that requests to /test/status/ will be redirected to /rewrite-status
            the url will be rewritten.
        </note>
        <condition type="parameter" name="_escaped_fragment_" operator="equal">(apple|kiwi|orange)</condition>
            <from>^/mysite/(.+)/(.*)$</from>
            <to type="redirect">/mysite/%{parameter:_escaped_fragment_}</to>
    </rule>

该规则意味着对/test/status/的请求将被重定向到/rewrite status
url将被重写。
(苹果|猕猴桃|橙)
^/mysite/(.+)/(.*)$
/mysite/%{参数:_转义的_片段u}
它无法在转义(%)模式中抛出java.lang.IllegalArgumentException:URLDecoder:非法十六进制字符–%%7。 因为我的变量包含下划线(_escape_fragment_u),其中可以与名为“friuit”的参数变量配合使用。 请帮我摆脱困境。


<rule>
<condition name="_escaped_fragment_" type="parameter" operator="equal">(apple|kiwi|orange)</condition>
<to type="redirect">/mysite/%1</to>
</rule>
(苹果|猕猴桃|橙) /mysite/%1

将查询参数的值与
%{parameter:_escape_fragment_uo}
一起使用将仅适用于不包含特殊字符的单词。其中
%1
(即%后跟查询参数索引)将适用于any,这解决了我的问题。

是否要向代码中添加和解释?只有代码的答案是好的,有解释的答案更好:)用户3686902给出的解决方案非常有效!我很高兴给他50%的声誉@秘密配方,他似乎是新来的。我可以更好地解释这一点。将查询参数的值与%
{parameter:_escape_fragment_u}
一起使用将仅适用于不包含特殊字符的单词。其中,
%1
(即%后跟查询参数索引)将适用于any,这解决了我的问题。