So erstellen Sie eine 301-Weiterleitung zu einer neuen Domain

Ich bearbeite die nginx.conf. Ich möchte alle Seiten von domain1.com auf domain2.com umleiten.

Wie muss ich die Datei bearbeiten, damit das funktioniert?

Ich sehe folgende Zeile:

if($http_host != domain1.com){
   rewrite (.*) https://domain1.com$1 permanent;
}

Wenn ich im if-Statement das ‘!=’ in ‘=’ ändere und die Umleitung auf die neue Domain umschreibe, wird das dann funktionieren? Oder muss ich sicherstellen, dass noch andere Dinge geändert werden?

Beispiel:

if($http_host = domain1.com){
   rewrite (.*) https://domain2.com$1 permanent;
}

Im Allgemeinen konfiguriere ich es wie folgt:

server {
    listen 80;
    server_name domain1.com;
    return 301 https://domain2.com$request_uri;
}

Die obige Direktive kann auf viele Arten angepasst werden, um besser Ihren Bedürfnissen zu entsprechen.

Danke, ich habe ein paar Fragen.

Ich habe folgende Zeilen in der Konfigurationsdatei:

server {
   listen 80
    return 301 https://domain1.com$request_uri
}

Ich weiß nicht, warum dort standardmäßig eine 301 steht. Soll ich das überschreiben oder einen neuen Eintrag darüber oder darunter erstellen (wie von Ihnen bereitgestellt)? Ist server_name erforderlich?

Wird dadurch der LetsEncrypt-Aktualisierungsprozess unterbrochen, wenn ich alles weiterleite?

Bearbeiten Sie die nginx.conf innerhalb des Discourse-Containers oder verwenden Sie einen externen nginx-Reverse-Proxy?

Wenn es sich um eine interne Konfiguration handelt, sollten Sie dies stattdessen in der app.yml-Datei vornehmen. Es gibt mehrere Beispiele, wie dies zu tun ist.

Wenn Sie dies über einen externen nginx-Reverse-Proxy durchführen, können Sie im Ordner /etc/nginx/conf.d eine neue Datei namens redirect.conf mit dem von mir bereitgestellten Konfigurationsbeispiel erstellen.

innerhalb des Containers. Ich werde nach Lösungen für app.yml suchen. Ich habe eine für den Ordner gesehen, hoffe, ich finde eine für die Domain-Änderung. Danke.

Hast du das schon ausprobiert?

Ja, wir werden es in Kürze umsetzen. Vielen Dank für Ihre Zeit.

@itsbhanusharma Ich implementiere den Code gerade. Meine Frage ist, ob LetsEncrypt sich selbst erneuert, da ich den alten Server noch eine Weile beibehalten möchte, bis Google die URLs geändert hat. Muss ich etwas hinzufügen, damit die LetsEncrypt-Erneuerung wegen dieser 301-Umleitung nicht fehlschlägt?

Könnte dies funktionieren: Set up Let’s Encrypt with multiple domains / redirects

Ich möchte .well-known/acme-challenge von einer Umleitung ausschließen.

issue mit 301-Umleitung und LetsEncrypt