IIS URL Rewrite negieren Bedingungen nicht arbeiten

Ich soll die Umleitung einige Seiten aus einem alten website (oldsite.com), um eine neue website (newsite.*) nach den folgenden Regeln:

  • Alle first-level-Kinder (/sv, /Nein, /da, etc) sollte eine Weiterleitung an Ihre jeweiligen Gegenstücke, also newsite.se, newsite.Nein, newsite.dk, etc.
  • Alle anderen Kinder/Nachkommen sollte-redirect auf die root der neuen Standorte als auch, außer /page1 und /page2 und seine Nachkommen.

Für diese habe ich folgende Regeln erstellt (für die sv in diesem Fall):

<rule name="Redirect /sv to .se" stopProcessing="true">
    <match url="^sv/?$" />
        <action type="Redirect" url="http://newsite.se" />
</rule>
<rule name="Redirect /sv/* except some pages" stopProcessing="true">
    <match url="^sv/.+" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_URI}" pattern="^sv/page1(.*)" negate="true" />
        <add input="{REQUEST_URI}" pattern="^sv/page2(.*)" negate="true" />
    </conditions>
    <action type="Redirect" url="http://newsite.se" />
</rule>

Die erste Regel funktioniert gut, aber nicht die zweite. Das problem ist, dass meine negiert Bedingungen scheinen nicht zu funktionieren. Wenn ich oldsite.com/sv/page1 ich bekomme immer noch umgeleitet zu newsite.se. Vielleicht habe ich missverstanden, wie negierte Bedingungen arbeiten, aber sollte nicht die zweite Regel, die Aktion auszuführen, wenn und nur wenn beide Bedingungen erfüllt sind (false), d.h. die REQUEST_URI nicht match /page1 und /page2?

InformationsquelleAutor William | 2016-04-01
Schreibe einen Kommentar