IIS 7.5 URL Rewrite rule to handle request based o

2019-05-11 05:53发布

I have written a rule to redirect request based on user agent.

The rule is set to redirect default requests (not mobile) to Domain1 and requests from mobile to mobile domain Domain2.

Currently even after applying mobile redirect all request from mobile are taken to Domain1 Find the redirect rule below. Can anyone tell me what I'm missing?

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

1条回答
乱世女痞
2楼-- · 2019-05-11 06:01

In your Mobile UA redirect rule, the conditions logical grouping is the one by default: MatchAll

I don't think a phone having a HTTP_USER_AGENT matching ^.*BlackBerry.*$ will also match .*Mobile.*Safari. So you need to change the logical grouping to MatchAny.

You rule would then be:

<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>
查看更多
登录 后发表回答