2013-04-09 71 views
2

我已經編寫了基於用戶代理重定向請求的規則。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> 

回答

2

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