1

我正在尝试使用UrlRewriteFilter重定向。由于我们一直在移动服务器和基础设施以开发我们的内部云解决方案,因此我们计划大量使用这些解决方案。

我的问题是我有一个类似的网址

https://google.com/web-app/servlet? 请求参数和值

我需要将所有URL具有特定参数值的 s 重定向到不同的服务器。

所以一个像这样的网址:

https://google.com/administrator/servlet/ej.processOrder?sec=100&geo=appointment&cus=dubai

如果参数包含cus=dubai,我需要将其重定向到

https://hotmail.com/servlet/ej.processOrder?sec=100&geo=appointment&cus=dubai

我尝试了以下方法,但似乎不起作用

<urlrewrite use-query-string="true">
    <rule match-type="wildcard">
        <name>Redirect requests to cases</name>
        <description></description>
        <from>/administrator/servlet/**?**</from>
        <to type="redirect" last="true">http://hotmail.com:8080/servlet/$1?&amp;cus=dubai&amp;$2&amp;$3&amp</to>
    </rule> 
</urlrewrite>

谢谢您的帮助。

4

3 回答 3

1

条件应为“类型”而不是“名称”,如:

<condition type="query-string" operator="equal">*cus=dubai*</condition>
于 2015-02-20T21:01:26.483 回答
1

您将需要使用query-string并确保它符合特定条件。

从我所看到的你会想要这样的东西:

<condition name="query-string" operator="equal">*cus=dubai*</condition>

每个不同的参数都需要一个规则。一条完整的规则如下所示:

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

    <rule match-type="wildcard">
        <name>Cus = dubai</name>
        <from>/administrator/servlet/*</from>
        <condition name="query-string" operator="equal">*cus=dubai*</condition>
        <to type="redirect" last="true">https://hotmail.com/servlet/ej.processOrder?sec=100&geo=appointment&cus=dubai</to>
    </rule> 

    <!-- other rules go here -->

</urlrewrite>
于 2013-04-19T17:29:07.217 回答
0

好问题,对于我认为经常发生的情况,我认为手册中没有很好地记录它。

以下对我有用 -

<rule>
<condition type="query-string">foo=123&amp;bar=456</condition>
<from>/index.jsp</from>
<to type="permanent-redirect" last="true">https://somehwere-else.com/blah/blah/</to>
</rule>

所以这应该适合你 -

<rule>
<name>Redirect requests to cases</name>
<condition type="query-string">sec=100&amp;geo=appointment&amp;cus=dubai</condition>
<from>/administrator/servlet</from>
<to type="permanent-redirect" last="true">http://hotmail.com:8080/servlet/sec=100&amp;geo=appointment&amp;cus=dubai</to>
</rule> 
于 2018-03-08T18:08:07.260 回答