Sie sollten in der Lage sein, eine Bedingung in Ihrer IIS-Umschreiberegel zu verwenden.
<rule name="MobileBrowser" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_COOKIE}" pattern="nomobile" ignoreCase="true" negate="true" />
<add input="{REQUEST_URI}" pattern="/mobile.*" negate="true" />
<add input="{FileContains:{HTTP_USER_AGENT}}" pattern=".+" />
</conditions>
<action type="Rewrite" url="http://mysite.com/mobile" appendQueryString="false" redirectType="Found" />
</rule>
Ich habe keine 2008R2-Maschine zum Testen und stelle sicher, dass meine Syntax korrekt ist, aber es sollte ausreichen, um Sie in die richtige Richtung zu bringen.
Die Grundlagen dieser Regel lauten:
- Ordnen Sie eine beliebige URL zu
- Solange der Browser nicht über das Cookie "nomobile" verfügt
- Die Anforderungs-URL enthält / mobile noch nicht
- Der Benutzeragent stimmt mit dem Inhalt einer Datei überein.
Diese Regel erfordert die Verwendung eines benutzerdefinierten Anbieters, damit Sie alle verschiedenen Benutzeragenten speichern können, die möglicherweise mobil sind (und es gibt eine lange Liste von ihnen). Zum Einrichten der benutzerdefinierten Anbieter, werfen Sie einen Blick hier .
Ich habe den Cookie-Check hinzugefügt, da einige Leute immer noch gerne die Website in voller Größe betrachten, sogar auf ihrem mobilen Gerät. Auf diese Weise können Sie damit umgehen, indem Sie in ihrem Browser ein Cookie setzen, und die Regel überspringt sie.
Hier gibt es eine etwas einfachere Version , die auch einigen Beispielen entspricht.