VoraussetzungenFür diese exemplarische Vorgehensweise sind die folgenden Voraussetzungen erforderlich: IIS installiert URL Rewrite Module 2.1 Kurze URL http://www.iis.net/extensions/URLRewrite Seite herunterladen https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads Link zum Herunterladen https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_zh-CN.msi IIS 7 oder höher mit aktiviertem ASP.NET-Rollendienst. Einrichten einer TestseiteUm zu demonstrieren, wie das URL-Rewrite-Modul funktioniert, verwenden wir eine einfache ASP.NET-Testseite. Diese Seite liest Webservervariablen und gibt deren Werte im Browser aus. Kopieren Sie den folgenden ASP.NET-Code und platzieren Sie ihn im Ordner %SystemDrive%\inetpub\wwwroot\ in einer Datei mit dem Namen article.aspx: <%@ Seitensprache="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <Kopf> <meta http-equiv="Inhaltstyp" content="text/html; charset=utf-8" /> <title>Test des URL-Rewrite-Moduls</title> </Kopf> <Text> <h1>Testseite des URL-Rewrite-Moduls</h1> <Tabelle> <tr> <th>Servervariable</th> <th>Wert</th> </tr> <tr> <td>Ursprüngliche URL: </td> <td><%= Anfrage.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td> </tr> <tr> <td>Endgültige URL: </td> <td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td> </tr> </Tabelle> </body> </html> Navigieren Sie nach dem Kopieren dieser Datei zu http://localhost/article.aspx und prüfen Sie, ob die Seite im Browser korrekt dargestellt wird. Erstellen von UmschreibregelnWir erstellen eine einfache Umschreibregel, die die URL im folgenden Format umschreibt:
Wir erstellen mithilfe der URL-Rewrite-Benutzeroberfläche im IIS-Manager eine Umschreibregel. Gehen Sie hierzu folgendermaßen vor: 1. Gehen Sie zum IIS-Manager. 2. Wählen Sie „Standardwebsite“. 3. Klicken Sie in der Funktionsansicht auf „URL umschreiben“. 4. Klicken Sie im Aktionsbereich rechts auf Regel hinzufügen…. 5. Wählen Sie im Dialogfeld „Regel hinzufügen“ die Option „Leere Regel“ aus und klicken Sie dann auf „OK“. Jetzt müssen Sie die eigentlichen Umschreibregeln definieren. Im URL-Umschreibmodul werden Umschreibregeln durch die Angabe von vier erforderlichen Informationen definiert:
NamenskonventionGeben Sie im Textfeld „Name“ einen Namen ein, der diese Regel eindeutig identifiziert, zum Beispiel: „Umschreiben in article.aspx“. Definieren des ModusGeben Sie im Textfeld Muster die folgende Zeichenfolge ein:
Diese Zeichenfolge ist ein regulärer Ausdruck, der angibt, dass das Muster mit jeder URL-Zeichenfolge übereinstimmt, die die folgenden Bedingungen erfüllt:
Beachten Sie, dass einige Teile des regulären Ausdrucks in Klammern stehen. Diese Klammern erstellen Erfassungsgruppen, auf die später in der Regel durch Rückverweise verwiesen werden kann. Aktionen definierenDa die Regel, die wir erstellen werden, URLs umschreiben soll, wählen Sie den Typ „Aktion umschreiben“ aus, der im Gruppenfeld „Aktion“ aufgeführt ist. Geben Sie im Textfeld „URL umschreiben:“ die folgende Zeichenfolge ein:
Diese Zeichenfolge gibt den neuen Wert an, in den die Eingabe-URL umgeschrieben werden soll. Beachten Sie, dass wir für die Werte der Abfragezeichenfolgenparameter {R:1} und {R:2} verwendet haben, die Rückverweise auf die Erfassungsgruppen sind, die im Regelmuster mit Klammern definiert sind. Belassen Sie für alle anderen Einstellungen die Standardwerte. Die Eigenschaftenseite „Eingehende Regeln bearbeiten“ sollte wie folgt aussehen: Speichern Sie die Regel, indem Sie rechts auf „Übernehmen“ klicken. Anzeigen der Umschreibregeln in der KonfigurationsdateiUmschreibregeln werden in der Datei ApplicationHost.config oder der Datei Web.config gespeichert. Um die Konfiguration der soeben erstellten Regel zu überprüfen, öffnen Sie die Datei Web.config in %SystemDrive%\inetpub\wwwroot. In dieser Datei sollten Sie einen <rewrite>-Abschnitt mit dieser Regeldefinition sehen: <umschreiben> <Regeln> <Regelname="Umschreiben in Artikel.aspx"> <match url="^Artikel/([0-9]+)/([_0-9a-z-]+)" /> <action type="Umschreiben" url="article.aspx?id={R:1}&title={R:2}" /> </Regel> </Regeln> </umschreiben> Die obige Syntax gilt auch für die Konfiguration der URL-Umschreibung in Web.config von Windows Azure Websites (WAWS). Testen der UmschreibregelnUm zu testen, ob die Regel die URL korrekt umschreibt, öffnen Sie einen Webbrowser und fordern Sie die folgende URL an:
Sie sollten sehen, dass die Umschreiberegeln auf dem Webserver die ursprüngliche URL in Article.aspx geändert haben und dass „234“ und „some-title“ als Werte der Abfragezeichenfolgenparameter übergeben wurden. Umleitungsregeln erstellenJetzt erstellen wir eine Umleitungsregel, die alle URLs im folgenden Format umleitet:
Umleitungsregeln lassen zu, dass mehr als eine URL auf eine einzelne Webseite verweist. Öffnen Sie hierzu die Benutzeroberfläche der URL-Umschreibungsfunktion im IIS-Manager. Klicken Sie auf „Regel hinzufügen…“ und wählen Sie erneut die Vorlage „Leere Regel“ aus. Geben Sie auf der Seite „Regel bearbeiten“ Folgendes ein:
Geben Sie einen Namen, Stil und eine Aktion wie unten gezeigt ein: Geben Sie die Weiterleitungs-URL wie unten gezeigt ein: Belassen Sie für alle anderen Einstellungen die Standardwerte. Speichern Sie die Regel, indem Sie rechts auf „Übernehmen“ klicken. Umleitungsregeln testenUm zu testen, ob die Regel die Anforderungen korrekt umleitet, öffnen Sie einen Webbrowser und fordern Sie die folgende URL an: http://localhost/blog/ein-anderer-titel/323 Sie sollten sehen, dass der Browser aufgrund der Ausführung der Umleitungsregel zu http://localhost/article/323/some-other-title umgeleitet wird und die Anforderung dann entsprechend der Umschreiberegel, die Sie zuvor erstellt haben, umgeschrieben wird. Erstellen einer ZugriffssperrregelDie dritte Regel, die wir erstellen, blockiert alle Anfragen an die Website, für die kein Host-Header festgelegt ist. Dieser Regeltyp ist nützlich, wenn Sie Hackerangriffe verhindern möchten, die durch HTTP-Anfragen an die IP-Adresse des Servers statt an den Hostnamen erfolgen. Wir werden diese Regel erstellen, ohne den IIS-Manager zu verwenden. Öffnen Sie die Datei Web.config im Ordner %SystemDrive%\inetpub\wwwroot\, die Sie am Anfang dieses Artikels für die Testdatei article.aspx verwendet haben. Suchen Sie den Abschnitt <rewrite>. Fügen Sie die folgende Regel in die <rules>-Sammlung ein, sodass sie die erste Regel in der Sammlung ist: <Regelname="Fehlerhafte Anfragen abweisen"> <übereinstimmende URL=".*"/> <Bedingungen> <add input="{HTTP_HOST}" pattern="localhost" negate="true" /> </Bedingungen> <Aktionstyp="AbbruchAnfrage" /> </Regel> Der Abschnitt <rewrite> sollte dem folgenden Code ähneln: <umschreiben> <Regeln> <Regelname="Fehlerhafte Anfragen abweisen"> <übereinstimmende URL=".*"/> <Bedingungen> <add input="{HTTP_HOST}" pattern="localhost" negate="true" /> </Bedingungen> <Aktionstyp="AbbruchAnfrage" /> </Regel> <Regelname="Weiterleitung vom Blog"> <match url="^blog/([_0-9a-z-]+)/([0-9]+)" /> <action type="Umleitung" url="article/{R:2}/{R:1}" redirectType="Gefunden" /> </Regel> <Regelname="Umschreiben in Artikel.aspx"> <match url="^Artikel/([0-9]+)/([_0-9a-z-]+)" /> <action type="Umschreiben" url="article.aspx?id={R:1}&title={R:2}" /> </Regel> </Regeln> </umschreiben> Lassen Sie uns die Regel analysieren, um zu verstehen, was sie bewirkt.
Das obige Element gibt an, dass diese Regel mit jeder URL-Zeichenfolge übereinstimmt.
Das obige Element fügt der Regel eine Bedingung hinzu, die den Host-Header-Wert abruft, indem sie die Servervariable HTTP_HOST liest, sie mit dem Muster „localhost“ abgleicht und dann das Ergebnis negiert. Mit anderen Worten überprüft die Bedingung, dass der Host-Header nicht mit „localhost“ übereinstimmt.
Das obige Element weist das URL-Rewrite-Modul an, die HTTP-Anfrage zu beenden. Testen von ZugriffssperrregelnUm diese Regel zu testen, öffnen Sie einen Webbrowser und senden Sie eine Anfrage an http://127.0.0.1/article/234/some-title. Sie sollten sehen, dass der Browser keine Antwort vom Server erhält. Wenn Sie jedoch http://localhost/article/234/some-title anfordern, antwortet der Webserver erfolgreich. Die ausgefallene Anzeige lautet wie folgt: Der Erfolg wird wie folgt angezeigt: ZusammenfassungIn dieser exemplarischen Vorgehensweise haben Sie gelernt, wie Sie URL-Umschreibregeln mithilfe des IIS-Managers oder durch manuelles Bearbeiten der Datei „Web.config“ konfigurieren. Die in dieser exemplarischen Vorgehensweise erstellten Regeln demonstrieren einige wichtige Funktionen des URL-Rewrite-Moduls, z. B. die Unterstützung regulärer Ausdrücke und die Möglichkeit, HTTP-Header und Servervariablen für Umschreibentscheidungen zu verwenden. |
<<: Implementierung von Check Constraints in MySQL 8.0
>>: Vue implementiert den automatischen Sprung zur Anmeldeseite, wenn das Token abläuft
Boost installieren Es gibt viele Möglichkeiten, C...
Mysql unterstützt 3 Arten von Sperrstrukturen Spe...
Bisher wurden die von uns verwendeten Images alle...
Ich habe einen Server, auf dem mehrere Docker-Con...
Grundlegende SQL-Anweisungen MySQL-Abfrageanweisu...
Vorwort Während meines Praktikums in der Firma ha...
Es gibt viele Tools zum Sichern von MySQL-Datenba...
Dieser Artikel veranschaulicht anhand von Beispie...
Inhaltsverzeichnis 1. Datentyp 1.1 Warum brauchen...
1. Bereiten Sie die Java-Umgebung vor, jdk1.8 Übe...
Inhaltsverzeichnis Vorwort 1. Docker installieren...
Jeder weiß, dass Bilder auf Webseiten im Allgemein...
Dieser Artikel beschreibt anhand eines Beispiels,...
Heute, als ich unterwegs war, schrieb mir ein Kol...
Inhaltsverzeichnis Hintergrund Problemanalyse 1. ...