URL -Umschreiben

URL -Umschreiben
Die URL, die ein Client -Anforderungen vollständig oder patly unter Verwendung der Nginx -Umschreiben -Regeln geändert werden kann. Zusätzlich zur Regie des Flusses der ausführenden Seiten von NGINX ist das Hauptziel der Aktualisierung einer URL die Kunden, dass die von ihnen gesuchten Dienste sich verschoben haben. URLs werden mithilfe der Rückgabebeharten in Nginx umgeschrieben. Die gleiche Aufgabe, die URLs neu zu schreiben, wird von beiden Richtlinien durchgeführt. Die Umschreiben -Richtlinie ist stärker als die Return -Richtlinie, da sie ein kompliziertes Umschreiben erledigen kann, ohne dass die URLs analysiert werden müssen. Wir werden in dieser Anleitung untersuchen.

Es wird sehr empfohlen, die aktuelle Nginx -Instanz auf die höhere Version zu aktualisieren.0.1 und darüber. Trotzdem gelten einige Operationen und Syntaxen möglicherweise noch für die Versionen früher als die erwähnten.

Return -Richtlinie in Ubuntu 20.04

Der fundamentale und gut verstandene Rückkehrbefehl wird verwendet, um die URL-Umschreibung zu erreichen. Obwohl es nicht die regulären Ausdrücke verwendet, kann es die Variablen analysieren, die vom Pfad des Standortblocks entnommen werden. In der Regel wird die Return -Direktive verwendet, um die Anforderungs -URL an einen anderen Ort umzuleiten. Infolgedessen wird häufig die HTTP -Statuscodes wie 301 für die kontinuierliche Umleitung und 302 für die vorübergehende Umleitung verwendet. Die Beispiele für die Anwendungsfälle für die Return -Direktive sind in den folgenden Codefragmenten angezeigt:

Implementierung der Return -Direktive in der Servereinstellung

Wenn Sie Ihre Website in eine neue Domain verschieben und alle alten URLs in die neue Domain umgeben. Machen Sie Ihre Website, um entweder auf die "www" -Version oder die "Nicht-WWW" -Version umzuleiten.

Die Rückgabeanweisung im vorherigen Serverkontext ändert die URL, die für den WWW bestimmt ist.Urlinux.com Site, die die alte Domain für die www ist.Urlinux.com Site, die neue Domain ist. Wenn Nginx eine URL sieht, die die enthält www.Urlinux.com Die Website stoppt sofort die Seitenverarbeitung und bietet dem Client einen 301-Response-Code und wird die URL umgebaut. Der $ Schema Und $ Anfrage URI sind die beiden Variablen, die in der Return -Direktive verwendet werden. Der $ Anfrage Variable URI enthält die vollständige URI mit allen Parametern. Und das $ Schema Variable wird verwendet, um das URL -Schema (HTTP oder HTTPS) zu definieren. Beachten Sie bei der Umschreibung der URL, dass beide Variablen diese Informationen aus der Eingabe -URL abrufen.

Implementierung der Return -Richtlinie in der Standorteinstellung

Unter bestimmten Umständen ist die Weiterleitung der Seiten im Umgang mit Domänen vorzuziehen. Sie können die Seiten mit der Return -Direktive im Standortblock an einen anderen Ort umgeben.

Wenn eine Anforderungs-URL genau mit dem Muster /Artikel /Samples-Nginx im Beispiel übereinstimmt, leitet Nginx die Anforderung an das neue um https: // linux.com/nginx/context-nginx/ Adresse. Sie können auch die Position von allem für einen bestimmten Weg ändern. Das folgende Beispiel zeigt, wie Sie alle Seiten umleiten, die als „Proben“ gekennzeichnet sind https: // linux.com/Sprachen.

Schreiben Sie die Richtlinie in Ubuntu 20 neu.04

Die interne Fähigkeit des Webservers, die URLs umzuschreiben, ohne die Kernmethode der Client -Maschine offenzugeben. Es verwendet die regulären Ausdrücke und entspricht seiner Syntax. Der Ersatz -Platzhalter ersetzt die übereinstimmende URL. Mit dem Regex -Platzhalter können die regulären Ausdrücke verwendet werden. Und das Flag ermöglicht es, den Ausführungsfluss zu ändern. Die Flaggen brechen, dauerhaft, umleiten und zuletzt werden derzeit in Rewrite -Direktiven verwendet.

Die Syntaxdetails sind im Folgenden angegeben:

  • REGEX: Der reguläre Ausdruck, der mit dem PCRE erstellt wurde, der auf die URL der eingehenden Anforderungen angewendet wird.
  • Ersatz-URL: Wenn die angeforderte URL mit dem regulären Ausdruck übereinstimmt, wird die angeforderte URL unter Verwendung der Ersatzzeichenfolge geändert.
  • Flag: Ob der Befehl neu schreiben muss, hängt vom Wert der Flagge ab.

Beachten Sie, dass nur die Codes 301 oder 302 von der Umschreiben -Richtlinie zurückgegeben werden können. Nach der Umschreibung der Umschreiben muss eine Rückgabeanweisung explizit aufgenommen werden, wenn Sie zusätzliche Codes zurückgeben möchten.

Implementierung der Umschreibrichtlinie für statische Seite

Nehmen Sie den Fall, wo Sie die URL einer Seite ändern möchten, z. B. https: // linux.com/nginx-samples an https: // linux.com/otherpage.html. Im folgenden Standortblock wird eine Umschreibungsrichtlinie bereitgestellt, um dieselbe Aufgabe zu erfüllen.

Entsprechend dem Standortbefehlsstandort = /nginx-Samples stimmen nur die URLs mit dem genauen Präfix /Nginx-Samples mit dem Standortblock überein. Die anforderende URL wird von Nginx für die „/nginx-Samples“ untersucht?$ ”Muster. Die spezifischen Bedeutungen der Zeichen "^", ",", "?", Und" $ "werden verwendet, um das Muster zu definieren. Die Zeichenfolge, die übereinstimmt werden muss, beginnt mit "^". Das zu Matching der Zeichenfolge wird durch das Symbol "$" angezeigt. Das Nicht-Greedy-Modifikator-Zeichen ist “?”.

Sobald eine Übereinstimmung gefunden wurde, hört ein Nicht-Greedy-Modifikator auf, nach Mustern zu suchen. Wenn der angeforderte URI mit dem Muster übereinstimmt, ist die „otherpage.HTML ”wird ersetzt. Das Umschreiben endet auch, weil die Umschreibungsbeschränkung mit einer Pause endet. Die geänderte Anfrage wird jedoch nicht an einen anderen Ort weitergeleitet.

Implementierung der Umschreibrichtlinie für dynamische Seite

Betrachten Sie nun eine dynamische Seite, auf der der dynamische Teil ID = 11: https: // www ist.Linux.com/linux-user.Php?id = 11 (UID). Wenn Sie die neueste Art zum Umschreiben der URLs verwenden, benötigen Sie 10 Richtlinien für jeden Ihrer 10 Benutzer um. Stattdessen ist es machbar, die URL -Komponenten in Variablen zu extrahieren und diese Variablen zu verwenden, um einen einzelnen Umschreibungsbefehl zu erstellen, der alle dynamischen Seiten behandelt.

Mit dem Standortkommand. Nginx scannt die angeforderte URL für den „Linux-User/([0-9]+)//?$ ”Muster. Der Zeichenbereich in der quadratischen Klammerung des regulären Ausdrucks „^[0-9]+“ liegt zwischen 0 und 9. Ein angepasster Zeichen oder Zeichen wird durch das Symbol "+" angezeigt. In Ermangelung des „+“ -Scheichens identifiziert der reguläre Ausdruck nur die einzelnen Zeichen wie 5 oder 8, jedoch nicht 25 oder 44. Die Klammern des regulären Ausdrucks () markiert die Rückenreferenz. Diese Rückenreferenz wird durch die "$ 1" im "Linux-User" angezeigt.Php?ID = $ 1 ”Substitution URL.

Abschluss

Die Umschreiben oder Rückgabeanweisungen können jetzt verwendet werden, um die URLs neu zu schreiben. Die in diesem Kurs angegebenen Umschreibungsbeispiele sind unkompliziert zu verstehen. Wie in den Beispielen gezeigt, wird die Return -Direktive verwendet, um den Browser und die Suchmaschinencrawler über den Ort der Seite zu informieren. Während die Umschreibungsrichtlinie verwendet werden kann, um den URL -Umschreibungsvorgang abstrahieren, ohne den Browser aufzutreiben, was hinter den Kulissen passiert.