Wie leitet man eine Domain und ihre Subdomains mit Nginx um?

Veröffentlicht 8. September 2024

Problem: Umleitung von Domains und Subdomains mit Nginx

Die Umleitung einer Domain und ihrer Subdomains kann schwierig sein, besonders wenn Nginx als Webserver verwendet wird. Dieser Prozess beinhaltet die Einrichtung von Konfigurationen, um den gesamten Traffic von der ursprünglichen Domain und ihren Subdomains zum gewünschten Ziel zu leiten.

Lösung: Konfiguration von Nginx für Domain-Umleitung

Einrichten des Nginx Server-Blocks

Um eine Domain und ihre Subdomains mit Nginx umzuleiten, müssen Sie einen Server-Block in Ihrer Nginx-Konfigurationsdatei erstellen. Dieser Block definiert die Regeln für die Handhabung von Anfragen an Ihre Domain.

Öffnen Sie Ihre Nginx-Konfigurationsdatei und fügen Sie einen neuen Server-Block hinzu:

server {
    # Konfiguration wird hier eingefügt
}

Definieren Sie die server_name Direktive, um festzulegen, welche Domain und Subdomains dieser Block handhaben soll. Nginx ermöglicht es Ihnen, sowohl die Hauptdomain als auch alle Subdomains mit einem Punkt-Präfix zu erfassen:

server {
    server_name .meinedomain.beispiel;
    # Weitere Konfiguration folgt
}

Diese server_name Einstellung passt auf "meinedomain.beispiel" und jede Subdomain von "meinedomain.beispiel".

Implementierung der Umleitungsregel

Jetzt können Sie die Umleitungsregel hinzufügen. Nginx bietet Möglichkeiten zur Implementierung von Umleitungen, aber eine gängige Methode ist die Verwendung der rewrite Direktive.

Fügen Sie diese Zeile in Ihren Server-Block ein:

server {
    server_name .meinedomain.beispiel;
    rewrite ^ http://www.eineanderedomain.beispiel$request_uri? permanent;
}

Diese rewrite Regel bewirkt Folgendes:

  • Das ^ Symbol passt auf den Anfang der URI.
  • http://www.eineanderedomain.beispiel ist die Zieldomain für die Umleitung.
  • $request_uri erfasst die ursprüngliche Request-URI und fügt sie zur neuen Domain hinzu.
  • Das ? am Ende entfernt alle Query-Strings aus der ursprünglichen Anfrage.
  • Der permanent Flag erstellt eine 301 (dauerhafte) Umleitung.

Diese Konfiguration leitet alle Anfragen an "meinedomain.beispiel" oder eine ihrer Subdomains zu "www.eineanderedomain.beispiel" um, wobei der ursprüngliche Pfad beibehalten und alle Query-Strings entfernt werden.

Durch diese Einrichtung Ihrer Nginx-Konfiguration erstellen Sie ein Umleitungssystem, das sowohl Ihre Hauptdomain als auch alle ihre Subdomains handhabt.

Tipp: Testen Ihrer Nginx-Konfiguration

Nach Änderungen an Ihrer Nginx-Konfiguration ist es wichtig, diese zu testen, bevor Sie den Server neu laden. Sie können den folgenden Befehl verwenden, um auf Syntaxfehler zu prüfen:

nginx -t

Wenn der Test erfolgreich ist, können Sie Nginx neu laden, um die Änderungen anzuwenden:

nginx -s reload

Alternative Methoden für Nginx-Umleitung

Verwendung der Return-Direktive

Für Nginx-Versionen 0.9.1 und höher können Sie die return Direktive verwenden, um eine einfachere Umleitungsregel zu erstellen. Diese Methode ist klar und effizient.

Um dies zu implementieren, modifizieren Sie Ihren Server-Block wie folgt:

server {
    server_name .meinedomain.beispiel;
    return 301 http://www.eineanderedomain.beispiel$request_uri;
}

Diese Einrichtung bewirkt das Gleiche wie die rewrite Methode, aber mit einer kürzeren Syntax. Der 301 Statuscode zeigt eine dauerhafte Umleitung an, und $request_uri behält den ursprünglichen Pfad in der neuen URL bei.

Tipp: Verwenden Sie HTTPS für sichere Umleitungen

Bei der Einrichtung von Umleitungen ist es eine gute Praxis, HTTPS anstelle von HTTP für die Ziel-URL zu verwenden. Dies verbessert die Sicherheit und hilft, die SSL/TLS-Verschlüsselung aufrechtzuerhalten. Hier ein Beispiel:

server {
    server_name .meinedomain.beispiel;
    return 301 https://www.eineanderedomain.beispiel$request_uri;
}

Wildcard-Subdomain-Handhabung

Um alle Subdomains zu handhaben, einschließlich zukünftiger, können Sie Wildcard-Muster in Ihrer server_name Direktive verwenden. Diese Methode ermöglicht neue Subdomains ohne Änderung der Einrichtung.

So richten Sie es ein:

server {
    server_name meinedomain.beispiel *.meinedomain.beispiel;
    return 301 http://www.eineanderedomain.beispiel$request_uri;
}

Diese Einrichtung erfasst sowohl die Hauptdomain als auch jede Subdomain und leitet sie alle zur Zieldomain um. Der Wildcard (*) passt auf jeden Subdomain-Präfix und ermöglicht Flexibilität in Ihrer Umleitungseinrichtung.