4

複数の異なるユーザー エージェントを処理するように設定された書き直しがあり、それらのいずれにもルールを一致させたいと考えています。ただし、これらのいずれかに一致する URL は、別のルール (IP アドレス) にも一致する必要があります。ただし、これを行う方法に関するドキュメントは見つかりません。これを行う方法について誰か提案できますか?

以下は、私が達成しようとしているものの例です。conditionsノードがすでに複数回宣言されているため、これが失敗することはわかっています。

したがって、本質的には、いずれかの{HTTP_USER_AGENT}ルールいずれかの{REMOTE_ADDR}ルールが一致した場合のリダイレクトです。

<rule name="Mobile UA redirect" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny">
    <!-- Any of these can be matched -->
    <add input="{HTTP_USER_AGENT}" pattern="Android" />
    <add input="{HTTP_USER_AGENT}" pattern="BlackBerry" />
    <!-- ... more user agents... -->
  </conditions>
  <!-- Here, similarly, any one of these rules can be matched, but one of the rules above must also match one of the rules below. -->
  <conditions logicalGrouping="MatchAny">
    <add input="{REMOTE_ADDR}" pattern="127.0.0.1" />
    <add input="{REMOTE_ADDR}" pattern="192.168.0.1" />
  </conditions>
  <action type="Redirect" url="http://mob.mydomain.com/{R:0}" appendQueryString="true" />
</rule>

これを行う方法についての助けをいただければ幸いです。

4

1 に答える 1

2

下部に配置された次のようなsmthはどうですか?

<rule name="MobileRestricted" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAll">
    <add input="{REMOTE_ADDR}" pattern="127.0.0.1" negate="true" />
    <add input="{REMOTE_ADDR}" pattern="192.168.0.1" negate="true" />        
  </conditions>
  <action type="None"/>
</rule>
<rule name="Mobile UA redirect" stopProcessing="true">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny">
    <!-- Any of these can be matched -->
    <add input="{HTTP_USER_AGENT}" pattern="Android" />
    <add input="{HTTP_USER_AGENT}" pattern="BlackBerry" />
    <!-- ... more user agents... -->
  </conditions>
  <action type="Redirect" url="http://mob.mydomain.com/{R:0}" appendQueryString="true" />
</rule>

単一のルールではありませんが、2つ以下)

于 2013-01-22T01:11:24.393 に答える