URLrewriteFilter tuckey重定向

时间:2013-02-03 18:08:45

标签: tuckey-urlrewrite-filter

我正在尝试使用UrlRewriteFilter进行重定向。由于我们一直在开发服务器和基础架构以开发内部云解决方案,因此我们计划使用大量此类解决方案。

我的问题是我有一个像

这样的网址
  

https:// google.com/web-app/servlet?request-parameters&values

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

所以这样的网址如下:

  

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>

感谢您的帮助。

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

条件应为&#34; type&#34;而不是&#34; name&#34;,as:

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

答案 2 :(得分:0)

好的问题和我想象的情况经常在我看来manual中没有很好地记录。

以下对我有用 -

<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>