Hilfe bei der Weiterleitung nach Änderung der Domain meines Discourse-Forums

Nachdem ich mein Discourse-Forum auf eine neue Instanz und URL verschoben habe, benötige ich Hilfe bei der Einrichtung der Domain-Weiterleitung.

Ich möchte, dass Links von der alten Domain zur neuen Domain weitergeleitet werden. Zum Beispiel soll ein Link wie https://olddomain.com/t/topic/89520 zu https://newdomain.com/t/topic/89520 weitergeleitet werden.

Ich habe von der Verwendung einer 301-Weiterleitung gehört, aber ich habe Schwierigkeiten, das Nginx-Konfigurationsverzeichnis auf meinem Server zu finden. Jede alternative Lösung oder Anleitung wäre sehr willkommen.

1 „Gefällt mir“

Hallo @Anirudh_Dutta_Gupta :wave: Willkommen bei Meta :slight_smile:

Hast du dieses Thema schon gesehen:

Vielen Dank, @Lilly. Ich möchte wissen, ob Permalinks auch eine vollständige Domain-Änderung bewältigen können. Nur zur Klarstellung: Wir wechseln von abc.domain1.com zu xyz.domain2.com. Sowohl die Subdomain als auch die Domain ändern sich. Ich habe diese Diskussion gelesen und wollte bestätigen:

Versuchen Sie, ein bestehendes Discourse-Thema auf eine externe URL umzuleiten? Dafür sind Permalinks nicht ausgelegt. Ich bin ziemlich sicher, dass Sie nichts unter /t umleiten können.
Wenn Sie möchten, dass Personen, die https://hoidap.cheng.vn/t/cach-cua-do-nu-bao-binh-don-gian/70 2 besuchen, zu https://cunghoangdao.info umgeleitet werden, dann ist es meiner Meinung nach am besten, den Beitrag zu bearbeiten und den Leuten zu sagen, sie sollen auf den Link klicken, um zur anderen Website zu gelangen.

1 „Gefällt mir“

Sie richten also Folgendes ein:

3 „Gefällt mir“

Danke @RGJ. Wie gehe ich mit der generischen Weiterleitung um? Sowohl das aktuelle als auch das vorherige Forum laufen auf Discourse.

1 „Gefällt mir“

Angenommen, Sie werden das aktuelle Forum entfernen, es handelt sich lediglich um eine normale Apache- oder nginx-Umleitung.

Für nginx

server {
    server_name original.example.com;
    location / {
        rewrite ^/(.*)$ https://new.example.com/$1 permanent;
    }
}

oder Apache

RewriteEngine On
RewriteRule ^(.*)$ https://new.example.com/$1 [R=301,L]

Ich hatte den Teil übersehen, dass Sie nur Discourse verschieben und nicht migrieren. Da Sie nur Domains verschieben, benötigen Sie keine Permalien-Umleitungen.

2 „Gefällt mir“

Das habe ich mir ursprünglich auch gedacht, aber ich kann den nginx-Ordner nirgends im /etc-Verzeichnis finden. Schaue ich an der falschen Stelle?

Das liegt daran, dass dort derzeit eine Discourse-Installation läuft, die nginx im Container hat.

Am einfachsten wäre es, den alten Hostnamen auf die neue Instanz zu verweisen und die Weiterleitung dort zu handhaben, siehe URL rewrite for domain change in permalinks - #7 by modius

Alternativ können Sie die Discourse-Installation entfernen und nginx auf der alten Instanz einrichten.

1 „Gefällt mir“

Vielen Dank an @RGJ für die Anleitung. Ich habe einfach eine Domain-Ebene direkt von unserem Domainnamenanbieter eingerichtet, und das hat funktioniert. Die alten Links werden korrekt zu den neuen Links umgeleitet.

4 „Gefällt mir“

Hier ist die Methode, die ich für eine vollständige Umleitung nach einer Domain-Änderung verwende. Ich habe einige Lösungen aus diesem Forum kombiniert.

In der app.yml füge ich am Ende die Blöcke after_web_config und after_ssl hinzu:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

  after_web_config:
    - replace:
        filename: /etc/nginx/nginx.conf
        from: /sendfile.+on;/
        to: |
          server_names_hash_bucket_size 64;
          sendfile on;
    - file:
        path: /etc/nginx/conf.d/discourse_redirect_1.conf
        contents: |
          server {
            listen 80;
            listen 443 ssl;
            server_name old-domain.com;
            return 301 $scheme://new-domain.com$request_uri;
          }
  after_ssl:
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d old-domain.com --keylength"

## Beliebige benutzerdefinierte Befehle, die nach dem Build ausgeführt werden sollen
run:
  - exec: echo "Beginn der benutzerdefinierten Befehle"
  ## Wenn Sie die E-Mail-Adresse 'Von' für Ihre erste Registrierung festlegen möchten, kommentieren Sie die Zeile aus und ändern Sie sie:
  ## Nachdem Sie die erste Registrierungs-E-Mail erhalten haben, kommentieren Sie die Zeile wieder aus. Sie muss nur einmal ausgeführt werden.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Ende der benutzerdefinierten Befehle"

Dies leitet die alten Links zu den neuen Foren um, ohne SSL-Probleme.

4 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.