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 aus sites-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

WebhostingLäuft auf ultraschnellen NVMe-Laufwerken. Geeignet für Websites jeder Komplexität.
Bestellen
VPSFlexible Cloud-Infrastruktur mit vollem Root-Zugriff.
Bestellen
Dedizierte ServerBare-Metal-Server für maximale Leistung.
Bestellen

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!

Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns