Verwenden des URL-Rewrite-Moduls
von Ruslan Yakushev
Informationen zum URL-Rewrite-Modul
Mit dem URL-Rewrite-Modul 2.0 für IIS 7 und höher von Microsoft können IIS-Administratoren und -Administratorinnen leistungsstarke angepasste Regeln erstellen, um Anforderungs-URLs benutzerfreundlichen URLs zuzuordnen, die sich Benutzer und Benutzerinnen einfacher merken können und die von Suchmaschinen einfacher zu finden sind. Sie können das URL-Rewrite-Modul verwenden, um Aufgaben zum Ändern von URLs auszuführen, zu denen z. B. die Folgenden gehören:
- Definieren Sie leistungsstarke Regeln, um komplexe URLs in einfache und konsistente Webadressen zu transformieren.
- Ersetzen Sie einfach Webanwendungs-URLs, um benutzer- und suchmaschinenfreundliche Ergebnisse zu erzielen.
- Schreiben Sie URLs basierend auf HTTP-Headern und IIS-Servervariablen um.
- Führen Sie Umleitungen aus, senden Sie benutzerdefinierte Antworten, oder beenden Sie HTTP-Anforderungen basierend auf der Logik, die in den Umschreibungsregeln ausgedrückt wird.
- Steuern Sie den Zugriff auf Websiteinhalte basierend auf URL-Segmenten oder Anforderungsmetadaten.
Das URL-Rewrite-Modul ist sowohl als Download verfügbar, den Sie auf Ihrem eigenen IIS-Server installieren können, als auch über die Azure Web Sites-Cloudplattform von Microsoft.
Features des URL-Rewrite-Moduls 2.0
Das Microsoft URL-Rewrite-Module 2.0 enthält die folgenden wichtigen Features:
- Regelbasierte URL-Umschreibungs-Engine. Schreiben Sie Regeln, definieren die Logik, die zum Analysieren von Anforderungs-URLs verwendet wird, und ordnen Sie sie URLs zu, wenn die Anforderungs-URL mit einer definierten Regel übereinstimmt. Administratoren und Administratorinnen von Webservern und Websites können Regelsätze zum Definieren der URL-Umschreibungslogik verwenden.
- Musterabgleich mit regulären Ausdrücken. Umschreibungsregeln können die Syntax regulärer Ausdrücke für den Musterabgleich verwenden, der in ECMA-262 definiert ist.
- Musterabgleich mit Platzhaltern. Umschreibungsregeln können eine Platzhaltersyntax für den Musterabgleich verwenden.
- Globale und verteilte Umschreibungsregeln. URL-Rewrite verwendet globale Regeln, um serverweite URL-Umschreibungslogik zu definieren. Diese Regeln werden in der Datei „applicationHost.config“ definiert und setzen Regeln außer Kraft, die auf niedrigeren Ebenen in der Konfigurationshierarchie konfiguriert sind. Das Modul verwendet auch verteilte Regeln zum Definieren der URL-Umschreibungslogik für einen bestimmten Konfigurationsbereich. Dieser Regeltyp kann auf jeder Konfigurationsebene mithilfe von „Web.config“-Dateien definiert werden.
- Zugriff auf Servervariablen und HTTP-Header. Servervariablen und HTTP-Header stellen zusätzliche Informationen zu aktuellen HTTP-Anforderungen bereit. Diese Informationen können zum Konfigurieren von Umschreibungsregeln oder zum Erstellen der Ausgabe-URL verwendet werden.
- Verschiedene Regelaktionen. Anstatt eine URL umzuschreiben, kann eine Regel andere Aktionen ausführen, z. B. eine HTTP-Umleitung ausgeben, die Anforderung verwerfen oder einen benutzerdefinierten Statuscode an HTTP-Clients senden.
- Unterstützung für den IIS-Kernelmodus und Ausgabezwischenspeicherung im Benutzermodus. Die IIS-Ausgabezwischenspeicherung bietet erhebliche Leistungsverbesserungen für Webanwendungen. Das URL-Rewrite-Modul ist vollständig mit beiden Typen der Ausgabezwischenspeicherung kompatibel. Dies bedeutet, dass es möglich ist, Antworten für neu geschriebene URLs sicher zwischenzuspeichern und so die Leistung von Webanwendungen zu erhöhen, die auf URL-Umschreibungen angewiesen sind.
- Bearbeitungsfunktionen für Zeichenfolgen. Mithilfe integrierter Funktionen zur Zeichenfolgenbearbeitung können Sie URLs in Kleinbuchstaben konvertieren und URLs codieren oder decodieren.
- Umschreibungszuordnungen. Eine Umschreibungszuordnung ist eine beliebige Auflistung von Name/Wert-Paaren. Sie können eine Umschreibungszuordnung innerhalb von Umschreibungsregeln verwenden, um die Ersetzungs-URL zu generieren. Umschreibungszuordnungen sind besonders nützlich, wenn Sie über sehr viele Umschreibungsregeln verfügen, die alle statische Zeichenfolgen verwenden (d. h., es wird kein Musterabgleich verwendet). In diesen Fällen können Sie anstelle vieler einfacher Umschreibungsregeln alle Zuordnungen in die Umschreibungszuordnungen einfügen, indem Sie die Eingabe-URL als Schlüssel verwenden und die Ersetzungs-URL als Wert einfügen. Anschließend verfügen Sie über eine Umschreibungsregel, die auf die Umschreibungszuordnung verweist, sodass ein Lookup für die Ersetzungs-URL basierend auf der Eingabe-URL durchgeführt werden kann.
- Unterstützung für die Ablaufverfolgung fehlerhafter Anforderungen. Mit der IIS-Ablaufverfolgung für Anforderungsfehler können Sie Fehler im Zusammenhang mit der URL-Umschreibung beheben.
- Regelvorlagen. Eine Regelvorlage ist eine Erweiterung für die Benutzeroberfläche des URL-Rewrite-Moduls, die das Erstellen von Umschreibungsregeln für eine bestimmte Aufgabe vereinfacht. Das Modul enthält drei Regelvorlagen und unterstützt auch das Einfügen einer beliebigen Anzahl von benutzerdefinierten Vorlagen.
- Benutzeroberfläche zum Testen regulärer Ausdrücke und Platzhaltermuster. Das Modul bietet eine Benutzeroberfläche zum Testen von Regelmustern. Mithilfe der Benutzeroberfläche können Sie die Ergebnisse eines regulären Ausdrucks oder eines Platzhaltermusters in einer Umschreibungsregel schnell überprüfen. Sie können die Benutzeroberfläche auch für die Problembehandlung und das Debuggen von Problemen im Zusammenhang mit dem Musterabgleich verwenden.
- Benutzeroberfläche zum Verwalten von Umschreibungsregeln und Umschreibungszuordnungen. Umschreibungsregeln und Umschreibungszuordnungen können mithilfe des URL-Rewrite Module im IIS-Manager hinzugefügt, entfernt und bearbeitet werden.
- Benutzeroberfläche zum Importieren von mod_rewrite-Regeln. Das URL-Rewrite-Modul enthält eine Benutzeroberfläche zum Konvertieren von Umschreibungsregeln vom „mod_rewrite“-Format in ein IIS-Format.
Abrufen des URL-Rewrite-Moduls
Weitere Informationen und zum Herunterladen des Moduls finden Sie auf der Startseite der URL-Rewrite-Erweiterung.
Upgraden vom Go Live-Release
Wenn Sie bereits das Go Live-Release des URL-Rewrite-Moduls installiert haben, wird es vom Installationspaket auf URL-Rewrite Version 2.0 aktualisiert. Alle Regeln in den Dateien „ApplicationHost.config“ und „Web.config“ bleiben erhalten.
ASP.NET-Update
Das Installationspaket für das URL-Rewrite-Modul enthält ein ASP.NET-Update, das ASP.NET-Fehler behebt, die spezifisch für das URL-Rewrite-Modul sind. Insbesondere enthält das Update Korrekturen für die folgenden Fehler:
- Der ~-Operator im ASP.NET-Webserversteuerelement wird bei Verwendung von URL-Rewrite falsch aufgelöst.
- Die ASP.NET-Eigenschaft „SiteMap.CurrentNode“ gibt NULL zurück, wenn die Sitemap virtuelle URLs enthält.
Das Update wird nur angewandt, wenn auf dem Computer, auf dem das URL-Rewrite-Modul installiert wird, .NET Framework Version 3.5 SP1 oder höher installiert ist. Wenn Sie nach der Installation des URL-Rewrite-Moduls die erforderliche Version von .NET Framework installieren, können Sie das ASP.NET-Update anwenden, indem Sie das Installationsprogramm für das URL-Rewrite-Modul ausführen und im Installationsdialogfeld die Option Reparieren auswählen.
Weitere Informationen zu diesen und anderen ASP.NET-Problemen im Zusammenhang mit URL-Rewrite finden Sie unter URL-Umschreibung für ASP.NET Web Forms.
Verwenden des Moduls
In diesen Artikeln werden die Funktionen des URL-Rewrite-Moduls behandelt und erläutert, wie sie zum Implementieren allgemeiner URL-Umschreibungsszenarien verwendet werden.
Grundlagen
Referenzen und Leitfäden
- Referenz zur Konfiguration des URL-Rewrite-Moduls
- URL-Rewrite und ASP.NET-Routing
- URL-Rewrite und Anforderungsfilterung
- URL-Rewrite für ASP.NET Web Forms
- Entwickeln von Regelvorlagen für das URL-Rewrite-Modul
Video zur exemplarischen Vorgehensweise
Änderungen seit dem Go Live-Release
Die folgenden Ergänzungen, Änderungen und wichtigen Fehlerbehebungen wurden seit dem Go Live-Release am URL-Rewrite-Modul vorgenommen:
- Funktionen UrlEncode und UrlDecode zur Zeichenfolgenbearbeitung hinzugefügt.
- Zugriff auf eine unformatierte ursprüngliche URL über die Servervariable UNENCODED_URL bereitgestellt. Diese Servervariable enthält nun die unformatierte codierte URL genau so, wie sie vom Webbrowser angefordert wurde.
- Benutzeroberfläche zum Konfigurieren von Umschreibungsregeln für das Routing von Anwendungsanforderungen (ARR) hinzugefügt.
- Unterstützung für das direkte Upgrade vom Go Live-Release des URL-Rewrite-Moduls hinzugefügt.
- Es wurden Funktionen hinzugefügt, um den internen Cache zu bereinigen und damit eine übermäßige Speicherauslastung beim Zwischenspeichern von Umschreibungsregeln zu vermeiden.
- Es wurde ein Fehler im Zusammenhang mit dem Umschreiben von URLs behoben, die Nicht-ASCII-Zeichen enthalten.
- Es wurde ein Fehler beim Verarbeiten regulärer Ausdrücke behoben, der dazu führte, dass Zeichenbereiche bei Mustern ohne Berücksichtigung der Groß-/Kleinschreibung falsch ausgewertet wurden.
- Es wurde ein Update für das IIS-FastCGI-Modul in das Installationspaket eingefügt.
- Es wurde ein Update für „System.Web.dll“ in das Installationspaket eingefügt.
- Es wurde ein Update für die IIS-SetUri-Funktion in das Installationspaket eingefügt.
Bekannte Probleme
- mod_rewrite-Regeln, die REQUEST_URI-Servervariablen verwenden, funktionieren möglicherweise nicht ordnungsgemäß, wenn sie mithilfe der URL-Rewrite-Funktion Regeln importieren importiert werden. Um die importierten Regeln zu korrigieren, können Sie einen beliebigen Text-Editor verwenden, um die Datei „Web.config“ zu öffnen, die diese Regeln enthält. Suchen Sie den Abschnitt
<rewrite>
, und ersetzen Sie innerhalb dieses Abschnitts alle Instanzen der Zeichenfolge {SCRIPT_NAME} durch die Zeichenfolge {URL}. - Die Digestauthentifizierung kann nicht mit dem URL-Rewrite-Modul verwendet werden.
- Die ASP.NET Forms-Authentifizierung verwendet umgeschriebene URLs für die Umleitung. Wenn die angeforderte URL beispielsweise /article.htm lautet und das URL-Rewrite-Modul die URL in /article.aspx umschreibt (die durch die Formularauthentifizierung geschützt ist), leitet ASP.NET zu /login.aspx?ReturnUrl=%2Farticle.aspx um.
- Der Modus für die automatische Erkennung bei der ASP.NET Forms-Authentifizierung verwendet eine umgeschriebene URL für die Umleitung. Wenn die angeforderte URL beispielsweise /article.htm lautet und das URL-Rewrite-Modul die URL in /article.aspx umschreibt (die durch die Formularauthentifizierung geschützt ist), leitet ASP.NET zu /article.aspx?AspxAutoDetectCookieSupport=1 um.
- Der UseUri-Modus der ASP.NET Forms-Authentifizierung verwendet umgeschriebene URLs für die Umleitung. Wenn die angeforderte URL beispielsweise /article.htm lautet und das URL-Rewrite-Modul die URL in /article.aspx umschreibt (die durch die Formularauthentifizierung geschützt ist), leitet ASP.NET zu /(S(vy2ebt45imfkmjjwboow3l55))/article.aspx um.
- ASP.NET führt bei Verwendung der URI-basierten Authentifizierung oder des Sitzungszustands ohne Cookie eine Umschreibung auf die ursprüngliche URL durch. Wenn beispielsweise eine Anforderung an /(S(vy2ebt45imfkmjjwboow3l55))/article.htm erfolgt und das URL-Rewrite-Modul /article.htm in /article.aspx umschreibt, schreibt ASP.NET die URL wieder in /article.htm um. Dies löst den Fehler „404 – Datei nicht gefunden“ aus.
- Das IIS-DefaultDocument-Modul kann zu einer umgeschriebenen URL umleiten, wenn das URL-Rewrite-Modul eine Umschreibung in einen Ordner durchführt. Wenn die Ersetzungs-URL in einer Umschreibungsregel beispielsweise /ordner1/ordner2 lautet, diese Ordner im Dateisystem vorhanden sind und ein Standarddokument konfiguriert wurde, leitet das DefaultDocument-Modul Webclients an /ordner1/ordner2/ um, sodass die umgeschriebene URL verfügbar ist. Um dies zu verhindern, verwenden Sie beim Umschreiben in einen Ordner „/“ am Ende der Ersetzungs-URL, z. B. /ordner1/ordner2/.