GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So leiten Sie URLs mit Nginx um

Was ist eine Weiterleitung?

Eine Weiterleitung ist eine Webserverfunktion, die Datenverkehr von einer URL zu einer anderen umleitet. Umleitungen sind ein wichtiges Feature, wenn die Notwendigkeit entsteht. Es gibt verschiedene Arten von Weiterleitungen, aber die gebräuchlicheren Formen sind vorübergehend und dauerhaft. In diesem Artikel stellen wir einige Beispiele für die Umleitung durch die vhost-Datei, das Erzwingen einer sicheren HTTPS-Verbindung, die Umleitung auf www und nicht-www sowie den Unterschied zwischen temporären und permanenten Umleitungen vor.

HinweisDa dies ein Nginx-Server ist, gelten keine .htaccess-Regeln. Wenn Sie den anderen beliebten Webserver, Apache, verwenden, werden Sie diesen Artikel nützlich finden.

Allgemeine Methoden für Weiterleitungen

Temporäre Weiterleitungen (Response Code:302 Found) sind hilfreich, wenn eine URL vorübergehend von einem anderen Ort aus bedient wird. Diese sind beispielsweise bei der Durchführung von Wartungsarbeiten hilfreich und können Benutzer auf eine Wartungsseite umleiten.

Permanente Weiterleitungen (Antwortcode:301 Moved Permanently) informieren den Browser jedoch darüber, dass es eine alte URL gab, die er vergessen und nicht mehr versuchen sollte, darauf zuzugreifen. Diese sind hilfreich, wenn Inhalte von einem Ort an einen anderen verschoben wurden.

Weiterleitung

Wenn es um Nginx geht, wird das innerhalb einer .conf gehandhabt Datei, die sich normalerweise im Dokumentstammverzeichnis Ihrer Site(s) befindet, /etc/nginx/sites-available/directory_name .conf . Das Dokumentstammverzeichnis ist der Ort, an dem sich die Dateien Ihrer Website befinden, und es kann sich manchmal im Verzeichnis /html befinden, wenn Sie eine Website auf dem Server haben. Oder wenn Ihr Server mehrere Sites hat, kann er /domain.com sein. In beiden Fällen wird dies der Name Ihrer .conf-Datei sein. In /etc/nginx/sites-available/ Verzeichnis finden Sie den Standard Datei, die Sie kopieren oder zum Anhängen Ihrer Weiterleitungen verwenden können. Oder Sie können einen neuen Dateinamen html.conf oder domain.com.conf erstellen.

HinweisWenn Sie eine neue Datei erstellen möchten, aktualisieren Sie unbedingt Ihre symbolischen Links in der Datei /etc/nginx/sites-enabled. Mit dem Befehl:

ln -s /etc/nginx/sites-available/domain.com.conf /etc/nginx/sites-enabled/domain.com.conf

Das erste Beispiel, das wir behandeln werden, ist die Umleitung einer bestimmten Seite/eines bestimmten Verzeichnisses auf die neue Seite/das neue Verzeichnis.

Temporäre Weiterleitung von Seite zu Seite

server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.domain.com/newpage redirect;
}

Permanente Weiterleitung von Seite zu Seite

server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.domain.com/newpage permanent;
}

Permanente www-zu-nicht-www-Umleitung

server {
# Permanent redirect to non-www
server_name www.domain.com;
rewrite ^/(.*)$ http://domain.com/$1 permanent;
}

Permanente Weiterleitung auf www

server {
# Permanent redirect to www
server_name domain.com;
rewrite ^/(.*)$ http://www.newdomain.com/$1 permanent;
}

Manchmal muss der Domainname einer Website geändert werden. In diesem Fall ist eine Umleitung von der URL der alten Website zur URL der neuen Website sehr hilfreich, um Benutzern mitzuteilen, dass die Domain auf eine neue URL verschoben wurde.

Das nächste Beispiel, das wir behandeln werden, ist das Umleiten einer alten URL zu einer neuen URL.

Permanente Umleitung auf neue URL

server {
# Permanent redirect to new URL
server_name olddomain.com;
rewrite ^/(.*)$ http://newdomain.com/$1 permanent;
}

Wir haben die Umleitung mithilfe der zuvor besprochenen Rewrite-Anweisung hinzugefügt. Das ^/(.*)$ Reguläre Ausdrücke verwenden alles nach dem / in der URL. Beispiel:http://alt domain.com/index.html leitet zu http://neu weiter domain.com/index.html. Um die permanente Weiterleitung zu erreichen, fügen wir permanent nach der rewrite-Direktive hinzu, wie Sie im Beispielcode sehen können.

Wenn es um HTTPS geht und vollständig sicher ist, ist es ideal, um jeden zu zwingen, https:// anstelle von http:// zu verwenden.

Auf HTTPS umleiten

server {
# Redirect to HTTPS
listen      80;
server_name domain.com www.domain.com;
return      301 https://example.com$request_uri;
}

Nachdem diese Umschreibungsregeln vorhanden sind, wird empfohlen, die Konfiguration vor dem Ausführen eines Neustarts zu testen. Die Nginx-Syntax kann mit dem -t überprüft werden Flag, um sicherzustellen, dass die Datei keinen Tippfehler enthält.

Nginx-Syntaxprüfung

nginx -t

Wenn nichts zurückgegeben wird, ist die Syntax korrekt und Nginx muss neu geladen werden, damit die Weiterleitungen wirksam werden.

Neustart von Nginx

service nginx reload

Für CentOS 7 was im Gegensatz zu CentOS 6 , verwendet systemd:

systemctl restart nginx

Weiterleitungen auf Managed WordPress/WooCommerce

Wenn Sie unsere Managed WordPress/WooCommerce-Produkte verwenden, können Weiterleitungen über /home/s#/nginx/redirects.conf erfolgen Datei. Jede Website hat ihre eigene s# Dies ist der FTP/SSH-Benutzer pro Site. Das Plug-in namens „Redirection“ kann heruntergeladen werden, um bei einer einfachen Umleitung von Seite zu Seite zu helfen, andernfalls kann die Datei „redirects.conf“ auch zum Hinzufügen spezifischerer Umleitungen verwendet werden, wobei die oben erläuterten Beispiele verwendet werden.

Aufgrund der Natur einer verwalteten Plattform, nachdem Sie die Regeln in der Datei „redirects.conf“ eingerichtet haben, wenden Sie sich bitte an den Support und bitten Sie darum, dass Nginx neu geladen wird. Wenn es Ihnen unangenehm ist, die oben beschriebenen Schritte auszuführen, wenden Sie sich per Chat, Ticket oder Telefonanruf an unser Support-Team. Mit Managed WordPress/WooCommerce steht Ihnen rund um die Uhr Support zur Verfügung, der bereit ist, Ihnen zu helfen!


Linux
  1. So verwenden Sie Nginx zum Umleiten

  2. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  3. So aktivieren Sie HTTP2 in NGINX

  4. Wie leite ich meine Website mit einer (Punkt-)Htaccess-Datei um?

  5. So konfigurieren Sie Nginx zum Ausführen von PHP mit PHP-FPM

So blockieren Sie XML-RPC in WordPress mit Nginx/Apache

Wie aktiviere ich IPv6 in Nginx?

So installieren Sie WordPress mit Nginx in Ubuntu Linux

So leiten Sie www-URLs in WordPress auf Nicht-www um

So installieren Sie WordPress auf einem Nginx LEMP-Stack mit Ubuntu 14.04

Wie installiere ich Nginx unter CentOS 7?