简体   繁体   English

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

[英]IIS 7.5 URL Rewrite rule to handle request based on user agent

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 devices to a mobile domain, Domain2 .该规则设置为将默认请求(非移动)重定向到Domain1并将来自移动设备的请求重定向到移动域Domain2

Even after applying the mobile redirect, all requests from mobile are taken to Domain1 .即使在应用移动重定向之后,来自移动的所有请求也会被带到Domain1

See 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="Domain2" />
    </rule>
    <rule name="Claritinchallenge to" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <action type="Redirect" url="Domain1" appendQueryString="false" />
    </rule>
  </rules>
</rewrite>

In your Mobile UA redirect rule, the conditions logical grouping is the one by default: MatchAll在您的Mobile UA redirect规则中,条件逻辑分组默认为: MatchAll

I don't think a phone having a HTTP_USER_AGENT matching ^.*BlackBerry.*$ will also match .*Mobile.*Safari .我认为HTTP_USER_AGENT匹配^.*BlackBerry.*$ .*Mobile.*Safari不会也匹配.*Mobile.*Safari So you need to change the logical grouping to MatchAny .因此,您需要将逻辑分组更改为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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM