我已根据用户代理编写了重定向请求的规则。
规则设置为将默认请求(不是移动设备)重定向到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>
答案 0 :(得分:6)
在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>