IIS 7.5-Weiterleitung / URL Umschreiben auf die mobile Version der Website

7

Ich suche nach einer IIS-Lösung (keine Programmierung), um eine Website auf eine mobile Version der Website umzuleiten. Es sieht so aus, als wäre dies mit IIS Redirect oder mit IIS URL Rewrite 2.0 möglich, aber nicht sicher. Wenn dies der Fall ist, wie würde man das machen?

Beispiel: mywebsite.com/ leitet zu (wenn mobiles Gerät) mywebsite.com/mobile um

Randnotiz: Wir verwenden derzeit IIS Redirect, um http zu https umzuleiten.

Themse
quelle

Antworten:

5

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.

Jon Angliss
quelle