nginx Redirect Generator
Trage deine Weiterleitungen ein, wähle die Optionen und kopiere die fertige Konfiguration.
Teste deine Weiterleitungen nach dem Deployment mit dem Redirect Checker oder dem Bulk-Checker.
Du willst die Regeln verstehen? Lies den Ratgeber zu nginx-Weiterleitungen.
So funktioniert der nginx-Redirect-Generator
Gib deine Domain ein, entscheide, ob HTTP auf HTTPS umgeleitet werden soll, wähl einen bevorzugten Host (nicht ändern, ohne www oder mit www) und trag einzelne Seiten-Redirects im Format alter-Pfad neuer-Pfad-oder-URL ein, eine Weiterleitung pro Zeile. Der gewählte Statuscode (301, 302, 307 oder 308) gilt für die Seiten-Redirects. Der Generator schreibt dir vollständige server-Blöcke, die du an deine Konfiguration anpassen kannst.
Für example.com mit HTTPS, ohne www und einem Seiten-Redirect sieht die Ausgabe so aus:
# Generated with https://redirect-tester.com/nginx-redirect-generator/
# HTTP to HTTPS and example.com in one redirect
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
# www.example.com to example.com
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.example.com;
# ssl_certificate and ssl_certificate_key must cover this host too
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com;
# ... your existing configuration ...
# Page redirects (301)
location = /alte-seite {
return 301 /neue-seite;
}
}
Was die server-Blöcke machen
- Port 80: Jede HTTP-Anfrage, ob mit oder ohne www, geht direkt auf
https://example.com.$request_uriübernimmt Pfad und Query-String. - Port 443 für den nicht bevorzugten Host:
https://www.example.com/wird auf den bevorzugten Host umgeleitet. Zusammen sorgen beide Blöcke dafür, dass jede Variante die finale URL in einem Hop erreicht – ohne Redirect-Kette. location = /alte-seitetrifft exakt diesen Pfad und gehört in deinen Haupt-server-Block.returnhängt den Query-String nicht automatisch an ein Ziel wie/neue-seitean. Brauchst du ihn, schreibreturn 301 /neue-seite$is_args$args;.
return ist schneller und übersichtlicher als rewrite und wird von nginx für einfache Redirects empfohlen. Den Unterschied zwischen permanenten und temporären Codes erklärt der Ratgeber 301 vs. 302.
Zertifikate für beide Hosts
Bevor nginx auf Port 443 einen Redirect schicken kann, muss der TLS-Handshake klappen. Das Zertifikat muss deshalb beide Namen abdecken, example.com und www.example.com. Sonst sehen Besucher des nicht bevorzugten Hosts eine Zertifikatswarnung statt der Weiterleitung. Mit Let's Encrypt beantragst du beide Namen in einem Zertifikat, zum Beispiel mit certbot --nginx -d example.com -d www.example.com, und trägst die ssl_certificate-Zeilen in beide 443er-Blöcke ein.
Testen, neu laden, prüfen
Füg die Blöcke in deine Site-Konfiguration ein, meist unter /etc/nginx/sites-available/ oder /etc/nginx/conf.d/, und führ den letzten Block mit deinem bestehenden server-Block zusammen. Dann:
sudo nginx -t
sudo systemctl reload nginx
nginx -t prüft die Syntax. Lade nginx erst neu, wenn der Test erfolgreich war – eine fehlerhafte Konfiguration wird nicht übernommen. Anschließend testest du HTTP-, www- und alte Seiten-URLs mit dem Redirect-Checker. Hintergründe und weitere Beispiele stehen im Ratgeber zu nginx-Redirects und in der nginx-Dokumentation zu return.
Häufige Fragen
- Warum gibt es für die Redirects eigene server-Blöcke?
Eigene server-Blöcke, die nur ein
returnenthalten, sind in nginx der effizienteste Weg, ganze Hosts umzuleiten. nginx wählt den Block anhand von Port undserver_nameund antwortet sofort, ganz ohneif-Bedingungen. Die nginx-Dokumentation rät ausdrücklich davon ab, dafürif ($host ...)zu verwenden.- Nach der Änderung sehe ich immer noch das alte Verhalten. Warum?
Entweder wurde nginx nicht neu geladen, die Konfigurationsdatei wird gar nicht eingebunden, oder dein Browser liefert einen gecachten
301aus. Prüf mitnginx -T, ob deine Blöcke Teil der aktiven Konfiguration sind, und teste mit dem Redirect-Checker – der nutzt keinen Browser-Cache.- Kann ich für den Host-Redirect 308 statt 301 verwenden?
Ja, ersetz
return 301durchreturn 308. Beide sind permanent und für Google ein starkes Kanonisierungssignal. Der einzige Unterschied: Bei308müssen Clients die Request-Methode beibehalten, was für POST-Anfragen wichtig ist. Mehr dazu unter 307 vs. 308.
Weitere kostenlose Tools
-
Bulk-Checker
Prüfe bis zu 20 URLs auf einmal, z. B. deine Redirect-Map nach einem Domain-Umzug. Mit CSV-Export.
-
Header-Checker
Alle HTTP-Response-Header jedes Hops, inklusive Location, Cache-Control und HSTS.
-
.htaccess-Redirect-Generator
Erzeuge .htaccess-Regeln für einzelne Seiten, HTTPS- und www-Weiterleitungen.
-
HTTP-Statuscodes
Alle HTTP-Statuscodes erklärt, mit Hinweisen, wie Google sie behandelt.
-
JSON-API
Prüfe Weiterleitungen aus Skripten und CI-Pipelines mit einer einfachen JSON-API.