HTTP-Redirects in Nginx
Ein vollständiges Handbuch zur Konfiguration von Weiterleitungen in Nginx.
HTTP-Weiterleitungen weisen Browser und Suchmaschinen-Crawler an, von einer URL zu einer anderen zu wechseln. Sie kommen in vielen Situationen zum Einsatz: beim Wechsel auf eine neue Domain, beim Erzwingen von HTTPS, beim Bereinigen der URL-Struktur, beim Zusammenführen doppelter Inhalte und vielem mehr. Korrekt eingerichtet, sichern Weiterleitungen Ihre Suchmaschinenrankings und verhindern, dass Nutzer auf Sackgassen stoßen.
Nginx verarbeitet Weiterleitungen über das integrierte Modul ngx_http_rewrite_module, das standardmäßig installiert ist.
Wann ist das sinnvoll?
Mit einem VPS oder einem dedizierten Server haben Sie die volle Kontrolle über Ihre Nginx-Konfiguration — Sie können beliebige Weiterleitungsregeln einrichten, testen und schnell anpassen.
Weiterleitungen konfigurieren
Nginx-Weiterleitungen werden in den Konfigurationsdateien des Servers definiert:
/etc/nginx/nginx.conf— die zentrale Konfigurationsdatei/etc/nginx/sites-available/site_name— site-spezifische Konfiguration/etc/nginx/sites-enabled/— Symlinks auf aktive Konfigurationen aussites-available
Nehmen Sie Änderungen in sites-available vor und validieren Sie die Syntax immer vor dem Neuladen:
nginx -t
301-Weiterleitung von www auf non-www
server {
listen 80;
server_name www.domain.com;
rewrite ^ http://domain.com$request_uri? permanent;
}
server {
listen 80;
server_name domain.com;
...
}
301-Weiterleitung von non-www auf www
server {
listen 80;
server_name domain.com;
rewrite ^ http://www.domain.com$request_uri? permanent;
}
server {
listen 80;
server_name www.domain.com;
...
}
301-Weiterleitung von HTTPS auf HTTP
server {
listen 443;
server_name www.domain.com;
rewrite ^ http://www.domain.com$request_uri? permanent;
}
server {
listen 80;
server_name www.domain.com;
...
}
301-Weiterleitung von HTTP auf HTTPS
Für eine neue Domain:
server {
listen SERVER_IP:80;
server_name www.domain.com;
rewrite ^ https://www.domain.com$request_uri? permanent;
}
server {
listen SERVER_IP:443 ssl;
server_name www.domain.com;
...
}
Für eine bestehende Domain:
server {
listen SERVER_IP:80;
server_name www.domain.com;
rewrite ^ https://www.domain.com$request_uri? permanent;
}
Eine bestimmte Seite auf eine neue URL weiterleiten
server {
...
if ($request_filename ~ oldpage/) {
rewrite ^ http://www.domain.com/newpage/? permanent;
}
...
}
301-Weiterleitung für ein gesamtes Verzeichnis
server {
...
if ($request_filename ~ oldfolder/.+) {
rewrite ^(.*) http://www.domain.com/newfolder/$1 permanent;
}
...
}
Unsere Produkte und Dienste
301-Weiterleitung von einer Domain auf eine andere
server {
server_name domain.com www.old-domain.com;
rewrite ^ $scheme://www.new-domain.com;
}
Abschließende Schrägstriche aus URLs entfernen
server {
...
rewrite ^/(.*)/$ /$1 permanent;
...
}
location ~ .+/$ {
rewrite (.+)/$ $1 permanent;
}
Weiterleitung weg von index.php
if ($request_uri ~* "^(.*/)index\.phpquot;) {
return 301 $1;
}
Doppelte Schrägstriche (//) in URLs beheben
merge_slashes off;
location ~* "//" {
rewrite ^(.*)//(.*)$ $1/$2;
rewrite ^ $uri permanent;
}
Nach jeder Änderung muss Nginx neu gestartet werden, damit die Änderungen wirksam werden:
service nginx restart
Hilfe
Bei Fragen oder wenn Sie Unterstützung brauchen, erreichen Sie uns jederzeit über das Ticketsystem — wir helfen Ihnen gern weiter!