IIS 7.5 URL重写规则来处理基于用户代理的请求

问题描述:

我已经编写了基于用户代理重定向请求的规则。IIS 7.5 URL重写规则来处理基于用户代理的请求

该规则设置为将默认请求(不是移动的)重定向到Domain1,以及移动设备到移动域的请求Domain2

目前即使在应用移动重定向之后,从移动的所有要求都采取Domain1 查找下面的重定向规则。任何人都可以告诉我我错过了什么吗?

<rewrite> 
      <rules> 
       <rule name="Mobile UA redirect" enabled="true" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTP_USER_AGENT}" pattern="^.*BlackBerry.*$ " /> 
         <add input="{HTTP_USER_AGENT}" pattern=".*Mobile.*Safari" /> 
        </conditions> 
        <action type="Redirect" url="MobileURL" /> 
       </rule> 
       <rule name="Claritinchallenge to" enabled="true" stopProcessing="true"> 
        <match url="(.*)" /> 
        <action type="Redirect" url="Second Domain" appendQueryString="false" /> 
        <conditions> 
        </conditions> 
       </rule> 
      </rules> 
     </rewrite> 

在你Mobile UA redirect规则,条件逻辑分组是一个默认:MatchAll

我不认为有一个电话HTTP_USER_AGENT匹配^.*BlackBerry.*$也将匹配.*Mobile.*Safari。因此,您需要将逻辑分组更改为MatchAny。然后

你的规则是:

<rule name="Mobile UA redirect" enabled="true" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAny"> 
    <add input="{HTTP_USER_AGENT}" pattern="^.*BlackBerry.*$ " /> 
    <add input="{HTTP_USER_AGENT}" pattern=".*Mobile.*Safari" /> 
    </conditions> 
    <action type="Redirect" url="MobileURL" /> 
</rule> 
+1

@ b00tbu9好,这是不可思议。你可以试试'MatchAny'吗? – cheesemacfly 2013-04-09 15:31:08

+0

它用'MarchAny'工作 – 2013-04-09 15:39:39