So erstellen Sie temporäre und permanente Weiterleitungen mit Nginx

Einführung

Mit der HTTP-Umleitung können Sie eine Domain oder Adresse auf eine andere verweisen. Es gibt verschiedene Arten von Weiterleitungen, von denen jede für den Client-Browser eine andere Bedeutung hat. Die beiden häufigsten Typen sind temporäre und permanente Weiterleitungen.

Temporary Redirects (Antwortstatuscode * 302 gefunden *) sind nützlich, wenn eine URL vorübergehend von einem anderen Standort aus bereitgestellt werden muss. Wenn Sie beispielsweise eine Site-Wartung durchführen, möchten Sie möglicherweise eine temporäre Weiterleitung von Ihrer Domain auf eine Erklärungsseite verwenden, um Ihre Besucher darüber zu informieren, dass Sie in Kürze zurück sein werden.

Permanente Weiterleitungen (Antwortstatuscode * 301 dauerhaft verschoben *) teilen dem Browser andererseits mit, dass er die alte Adresse vollständig vergessen und nicht mehr versuchen soll, darauf zuzugreifen. Diese sind nützlich, wenn Ihr Inhalt dauerhaft an einen neuen Speicherort verschoben wurde, z. B. wenn Sie Domain-Namen ändern.

Sie können eine temporäre Umleitung in Nginx erstellen, indem Sie dem Serverblockeintrag in der Serverkonfigurationsdatei eine Zeile wie die folgende hinzufügen:

rewrite  ;

In ähnlicher Weise können Sie eine Zeile wie die folgende für eine permanente Umleitung verwenden:

rewrite  ;

In diesem Handbuch wird ausführlicher erläutert, wie die einzelnen Umleitungsarten in Nginx implementiert werden, und es werden einige Beispiele für bestimmte Anwendungsfälle aufgeführt.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

Lösung auf einen Blick

In Nginx können Sie die meisten Weiterleitungen mit der integrierten Direktive "+ rewrite +" ausführen. Diese Direktive ist in einer neuen Nginx-Installation standardmäßig verfügbar und kann zum Erstellen von temporären und permanenten Weiterleitungen verwendet werden. In seiner einfachsten Form benötigt es mindestens zwei Argumente: die alte URL und die neue URL.

Sie können eine temporäre Umleitung mit den folgenden Zeilen in Ihrer Serverkonfiguration implementieren:

Temporäre Weiterleitung mit Umschreiben

server {
   . . .
   server_name www.domain1.com;
   rewrite ^/$ http://www.domain2.com redirect;
   . . .
}

Diese Weiterleitung weist den Browser an, alle Anforderungen für "+ www.domain1.com " an " www.domain2.com " zu richten. Diese Lösung funktioniert jedoch nur für eine einzelne Seite, nicht für die gesamte Site. Um mehr als eine Seite umzuleiten, können Sie die Direktive " rewrite +" mit regular expressions verwenden, um stattdessen ganze Verzeichnisse anzugeben von nur einzelnen Dateien.

+ umleiten + stimmt mit Mustern für reguläre Ausdrücke in Klammern überein. Anschließend wird mit dem Ausdruck "+ $ 1 " auf den übereinstimmenden Text im Umleitungsziel verwiesen, wobei " 1 +" die erste Gruppe übereinstimmender Texte ist. In komplexeren Beispielen werden aufeinanderfolgende übereinstimmende Gruppen nacheinander nummeriert.

Wenn Sie beispielsweise jede Seite mit "+ www.domain 1.com " vorübergehend auf " www.domain 2.com +" umleiten möchten, können Sie Folgendes verwenden:

Temporäre Weiterleitung mit Umschreiben

server {
   . . .
   server_name www.domain1.com;
   rewrite ^/(.*)$ http://www.domain2.com/$1 redirect;
   . . .
}

server {
   . . .
   server_name www.domain2.com;
   . . .
}

Standardmäßig richtet die Direktive "+ rewrite " eine temporäre Umleitung ein. Wenn Sie eine permanente Umleitung erstellen möchten, können Sie dies tun, indem Sie am Ende der Anweisung " umleiten " durch " permanent +" ersetzen:

Permanente Weiterleitungen

rewrite ^/$ http://www.domain2.com ;
rewrite ^/(.*)$ http://www.domain2.com/$1 ;

Kommen wir zu einigen konkreten Beispielen.

Beispiel 1 - Umzug in eine andere Domain

Wenn Sie eine Webpräsenz eingerichtet haben und Ihre Domain in eine neue Adresse ändern möchten, ist es am besten, Ihre alte Domain nicht einfach aufzugeben. Lesezeichen für Ihre Website und Links zu Ihrer Website, die sich auf anderen Seiten im Internet befinden, werden unterbrochen, wenn Ihre Inhalte ohne Anweisungen für den Browser zum Auffinden des neuen Standorts ausgeblendet werden. Das Ändern von Domains ohne Umleitung führt dazu, dass Ihre Site Zugriffe von früheren Besuchern verliert.

In diesem Beispiel konfigurieren wir eine Umleitung von der alten Domain "+ domain1.com " zur neuen Domain " domain2.com +". Hier werden permanente Weiterleitungen verwendet, da die alte Domain entfernt wird und der gesamte Datenverkehr von nun an zur neuen Domain geleitet werden soll.

Nehmen wir an, Sie haben Ihre Website so konfiguriert, dass sie von einer einzigen Domain mit dem Namen "+ domain1.com +" aus bedient wird, die in Nginx bereits wie folgt konfiguriert wurde:

/etc/nginx/sites-available/domain1.com

server {
   . . .
   server_name domain1.com;
   . . .
}

Wir gehen auch davon aus, dass Sie Ihre zukünftige Version der Website bereits unter "+ domain2.com +" bereitstellen:

/etc/nginx/sites-available/domain2.com

server {
   . . .
   server_name domain2.com;
   . . .
}

Ändern Sie die Konfigurationsdatei "+ domain 1.com " für den Serverblock, um eine permanente Weiterleitung zu " domain 2.com +" hinzuzufügen:

/etc/nginx/sites-available/domain1.com

server {
   . . .
   server_name domain1.com;
   rewrite ^/(.*)$ http://domain2.com/$1 permanent;
   . . .
}

Wir haben die oben erwähnte Umleitung mit der Direktive "+ rewrite " hinzugefügt. Der reguläre Ausdruck " ^ / (. *) $ " Stimmt mit allem nach dem " / " in der URL überein. Beispielsweise wird " http: // domain1.com / " zu " http: // domain2.com / " umgeleitet. Um die permanente Weiterleitung zu erreichen, fügen wir nach der Direktive " rewrite " einfach " permanent +" hinzu.

Beispiel 2 - Erstellen einer dauerhaften Erfahrung trotz einzelner Seitennamenänderungen

Manchmal ist es erforderlich, die Namen einzelner Seiten zu ändern, die bereits veröffentlicht wurden und auf Ihrer Website Zugriffe erhalten haben. Das Ändern des Namens allein würde einen Fehler 404 Not Found für Besucher verursachen, die versuchen, auf die ursprüngliche URL zuzugreifen. Sie können dies jedoch vermeiden, indem Sie eine Umleitung verwenden. Dadurch wird sichergestellt, dass Personen, die Ihre alten Seiten mit einem Lesezeichen versehen oder über veraltete Links in Suchmaschinen gefunden haben, weiterhin auf die richtige Seite gelangen.

Stellen Sie sich vor, Ihre Website hatte zwei separate Seiten für Produkte und Dienstleistungen mit den Bezeichnungen "+ products.html" und "+ services.html". Jetzt haben Sie beschlossen, diese beiden Seiten durch eine einzige Angebotsseite mit dem Namen "+ offers.html " zu ersetzen. Wir werden eine einfache Weiterleitung für " products.html" und "+ services.html" zu "+ offers.html" konfigurieren.

Wir gehen davon aus, dass Sie Ihre Website wie folgt konfiguriert haben:

Angenommene ursprüngliche Serverblockkonfiguration

server {
   . . .
   server_name example.com www.example.com;
   . . .
}

Das Konfigurieren der Weiterleitungen ist so einfach wie die Verwendung von zwei Weiterleitungs-Direktiven.

Weiterleitungen zur ursprünglichen Konfiguration hinzugefügt

server {
   . . .
   server_name example.com www.example.com;

   rewrite  ;
   rewrite  ;
   . . .
}

Die Direktive "+ rewrite " akzeptiert die ursprüngliche Adresse, die umgeleitet werden muss, sowie die Zieladresse einer neuen Seite. Da es sich hier nicht um eine vorübergehende Änderung handelt, haben wir in der Direktive auch " permanent +" verwendet. Sie können so viele Weiterleitungen verwenden, wie Sie möchten, um sicherzustellen, dass Ihre Besucher beim Verschieben von Websiteinhalten keine unnötigen Nicht gefunden-Fehler sehen.

Fazit

Sie haben jetzt das Wissen, Anfragen an neue Standorte umzuleiten. Stellen Sie sicher, dass Sie den richtigen Umleitungstyp verwenden, da eine falsche Verwendung temporärer Umleitungen Ihr Suchranking beeinträchtigen kann.

Es gibt mehrere andere Verwendungen von HTTP-Weiterleitungen, einschließlich des Erzwingens sicherer SSL-Verbindungen (d. H. Verwenden Sie "+ https" anstelle von "+ http" und stellen Sie sicher, dass alle Besucher nur auf der "+ www. +" - Adresse der Website landen.

Wenn Sie die Weiterleitungen richtig verwenden, können Sie Ihre aktuelle Webpräsenz nutzen und die Site-Struktur nach Bedarf ändern. Wenn Sie mehr darüber erfahren möchten, wie Sie Ihre Besucher umleiten können, finden Sie in Nginx eine umfangreiche Dokumentation zu diesem Thema in den Abschnitten rewrite module des offiziellen Handbuchs Dokumentation und offizieller Blogeintrag zum Erstellen von Weiterleitungen.