Dieser Artikel enthält einige häufig verwendete Umschreibregeln zum Verschönern von Webseiten-Links. Wenn Sie nicht wissen, woher die $1$2 in der Regel kommen, denken Sie einfach daran, dass das erste () $1 und das zweite () $2 ist. Die angeforderte URL ist für Menschen sichtbar, und die umgeschriebene URL ist für Computer sichtbar. Eine Suche durchführen Der Zweck dieser Regel besteht darin, eine Suche nach in der URL enthaltenen Schlüsselwörtern durchzuführen. Angeforderte URL: //hqidi.com/search/some-search-keywords Benutzerprofilseite Die meisten dynamischen Websites, die Besucherregistrierungen durchführen, bieten eine Seite, auf der das Profil angezeigt werden kann. Die URL dieser Seite enthält die UID und den Benutzernamen des Benutzers. Angeforderte URL: //hqidi.com/user/47/dige Mehrere Parameter Einige Sites verwenden eine andere Syntax für Zeichenfolgenparameter, beispielsweise die Verwendung von Schrägstrichen "/" zum Trennen nicht benannter Parameter. Angeforderte URL: //hqidi.com/index.php/param1/param2/param3 Enzyklopädieähnliches Format Dieses Format verfügt über ein Präfix „Verzeichnis“, gefolgt vom Artikelnamen Angeforderte URL: //hqidi.com/wiki/some-keywords Forum Foren verwenden im Allgemeinen zwei Parameter, eine Themenkennung (Thema) und einen Startpunkt (Startbeitrag). Angeforderte URL: //hqidi.com/topic-1234-50-some-keywords.html Neue Site-Artikel Kennzeichnend für diese URL-Struktur ist eine Artikelkennung, gefolgt von einem Schrägstrich und einer Liste von Schlüsselwörtern. Angeforderte URL: //hqidi.com/88/future Das letzte Fragezeichen Wenn die zu ersetzende URI Parameter enthält (z. B. /app/test.php?id=5), werden die Parameter standardmäßig automatisch an die Ersetzungszeichenfolge angehängt. Dieses Problem kann gelöst werden, indem am Ende der Ersetzungszeichenfolge ein ?-Zeichen hinzugefügt wird. umschreiben ^/users/(.*)$ /show?user=$1? last; One Plus vergleichen? Markiert oder nicht? Der Unterschied zwischen markierten URL-Sprüngen: neu schreiben ^/test(.*)$ //hqidi.com/home premanent; Besuchen Sie //hqidi.com/test?id=5 und nach der 301-Weiterleitung lautet die URL-Adresse //hqidi.com/home?id=5 neu schreiben ^/test(.*)$ //hqidi.com/home? dauerhaft; Besuchen Sie //hqidi.com/test?id=5 und die URL nach der 301-Weiterleitung ist //hqidi.com/home Die Umschreibfunktion von Nginx erfordert die Unterstützung der PCRE-Software, d. h. der Regelabgleich wird über Perl-kompatible reguläre Ausdrucksanweisungen durchgeführt. Das Kompilieren von nginx mit Standardparametern unterstützt das Rewrite-Modul, aber PCRE-Unterstützung ist ebenfalls erforderlich „rewrite“ ist die Schlüsselanweisung zum Umschreiben von URLs. Sie leitet zum Ersetzen gemäß dem Regex-Teil (regulärer Ausdruck) weiter und endet mit einem Flag-Tag. Reihenfolge der Ausführung von Nginx-Umschreibbefehlen 1. Führen Sie die Umschreibanweisung des Serverblocks aus (der Block bezieht sich hier auf den von {} umgebenen Bereich nach dem Serverschlüsselwort, und andere xx-Blöcke sind ähnlich). Wenn die URI in einem beliebigen Schritt neu geschrieben wird, werden die Schritte 1 bis 3 in einer Schleife erneut ausgeführt, bis eine echte Datei gefunden wird. Wenn die Schleife mehr als 10 Mal wiederholt wird, wird ein 500 Internal Server Error zurückgegeben. Flagge Die Umschreibsyntax ist sehr einfach und lautet beispielsweise: Regex-URL umschreiben [Flag]; „rewrite“ ist ein Schlüsselwort, „regex“ ist ein regulärer Ausdruck, „URL“ ist der zu ersetzende Inhalt und „[flag]“ bedeutet das Flag-Bit, das die folgenden Werte hat:
Da 301 und 302 nicht einfach nur den Statuscode zurückgeben können, muss auch eine Umleitungs-URL vorhanden sein. Aus diesem Grund kann die Rückgabeanweisung nicht 301,302 zurückgeben. Der Unterschied zwischen last und break ist hier etwas schwierig zu verstehen:
Schauen wir uns ein einfaches Beispiel an: umschreiben ^/listings/(.*)$ /listing.html?listing=$1 last; neu schreiben ^/images/(.*)_(\d+)x(\d+)\.(png|jpg|gif)$ /resizer/$1.$4?width=$2&height=$3? last; In der ersten Umschreibregel können wir die benutzerfreundliche URL http://mysite.com/listings/123 anstelle von http://mysite.com/listing.html?listing=123 verwenden. Dies entspricht der Eingabe von http://mysite.com/listings/123 in die Adressleiste des Browsers. Die tatsächlich aufgerufene URL-Ressource ist dann http://mysite.com/listing.html?listing=123. In der zweiten Regel wird die Dateianforderung der Form http://mysite.com/images/bla_500x400.jpg auf die Adresse http://mysite.com/resizer/bla.jpg?width=500&height=400 umgeschrieben und es wird weiterhin versucht, den Speicherort abzugleichen. if-Anweisung und globale Variablen Die Syntax der if-Anweisung lautet if(Bedingung){...}, wodurch die gegebene Bedingung beurteilt wird. Wenn wahr, werden die Umschreibeanweisungen innerhalb der geschweiften Klammern ausgeführt. Schauen wir uns die Coderegeln an: wenn ($http_user_agent ~ MSIE) { umschreiben ^(.*)$ /msie/$1 break; } //Wenn UA „MSIE“ enthält, schreiben Sie die Anfrage in das Verzeichnis /msid/ um, if ($http_cookie ~* "id=([^;]+)(?:;|$)") { setze $id $1; } //Wenn das Cookie mit dem regulären Ausdruck übereinstimmt, setzen Sie die Variable $id so, dass sie dem Referenzteil des regulären Ausdrucks entspricht, if ($request_method = POST) { Rückgabe 405; } //Wenn die Übermittlungsmethode POST ist, ist der Rückgabestatus 405 (Methode nicht zulässig). Rückkehr kann nicht zurückkehren 301,302 wenn ($langsam) { Grenzrate 10k; } // Geschwindigkeitsbegrenzung, $slow kann mit dem Befehl set festgelegt werden if (!-f $request_filename){ brechen; Proxy-Passwort http://127.0.0.1; } //Wenn der angeforderte Dateiname nicht existiert, Reverse-Proxy zum lokalen Host. Der Break hier stoppt auch die Umschreibprüfung, wenn ($args ~ post=140){ neu schreiben ^ http://mysite.com/ permanent; } //Wenn die Abfragezeichenfolge „post=140“ enthält, permanente Weiterleitung zu mysite.com In der if-Anweisung können globale Variablen verwendet werden. Diese Variablen sind:
Mit Return springen Manchmal müssen wir Nginx neu schreiben, um einen 301-Adresssprung durchzuführen, beispielsweise nach den folgenden Regeln: neu schreiben ^ $scheme://www.mysite.com$request_uri permanent; Wenn Sie eine beliebige URL besuchen, wird sie permanent mit 301 auf die URL www.mysite.com umgeleitet. Diese Schreibweise ist korrekt, aber durch die Verwendung der regelmäßigen Umschreibeübereinstimmung werden einige Ressourcen verbraucht und die offizielle Nginx-Website empfiehlt diese Schreibweise nicht. Wir können auch return verwenden, um eine 301-Umleitung zu erreichen, was einfach und praktisch ist. Siehe das Beispiel: 301 Permanente Weiterleitung zum neuen Domänennamen Server { hören Sie 80; hören Sie 443 SSL; Servername www.alter-Name.com alter-Name.com; Rückgabe 301 $scheme://www.neuer-name.com; } Der obige Code implementiert eine 301-Umleitung vom alten Domänennamen zum neuen Domänennamen. Wenn die Website zu einem neuen Domänennamen wechseln muss, verwenden Sie diese Methode, um eine 301-Umleitung durchzuführen. 301-Umleitung von einer Domäne ohne www zu einer Domäne mit www Server { hören Sie 80; hören Sie 443 SSL; Servername mysite.com; gibt 301 $scheme://www.mysite.com$request_uri zurück; } 301-Weiterleitung von der http-Site zur https-Site Server { hören Sie 80; Servername www.mysite.com; gibt 301 https://www.mysite.com$request_uri zurück; } Das Obige ist eine Einführung in das Umschreiben und Umleiten von Nginx. Wenn Sie es nützlich finden, üben Sie es bitte oft und speichern Sie diesen Artikel, damit Sie nicht verloren gehen. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützt. Das könnte Sie auch interessieren:
|
<<: So verwenden Sie Lazy Loading in React, um die Ladezeit des ersten Bildschirms zu verkürzen
>>: Anweisungen zur Verwendung des Datenbankverbindungspools Druid
Einführung: Im Vergleich zu herkömmlichen Bildver...
Wirkung Von oben nach unten verblassen Quellcode ...
Code kopieren Der Code lautet wie folgt: <Obje...
Vorwort Alle Anfragen in Tomcat werden von Servle...
Inhaltsverzeichnis Überblick 1. useState 1.1 Drei...
Der „Abbrechen“-Button ist nicht Teil des notwend...
Da ich immer vscode zur Entwicklung von Front-End...
In diesem Artikelbeispiel wird der spezifische Co...
1: Definieren Sie eine gespeicherte Prozedur zum ...
Vorwort: Partitionierung ist ein Tabellenentwurfs...
Inhaltsverzeichnis Erstellen Sie ein Docker-Image...
Inhaltsverzeichnis Docker Compose-Nutzungsszenari...
1. --cpu=<Wert> 1) Geben Sie an, wie viele ...
Die Installation der MySQL-Software und die Daten...
Code kopieren Der Code lautet wie folgt: <!DOC...