Aiuto con il reindirizzamento dopo aver cambiato il dominio del mio forum Discourse

Dopo aver spostato il mio forum Discourse su una nuova istanza e URL, ho bisogno di aiuto per configurare il reindirizzamento del dominio.

Voglio che i link dal vecchio dominio vengano reindirizzati al nuovo dominio. Ad esempio, un link come https://olddomain.com/t/topic/89520 dovrebbe essere reindirizzato a https://newdomain.com/t/topic/89520.

Ho sentito parlare dell’utilizzo di un reindirizzamento 301, ma sto avendo difficoltà a individuare la directory di configurazione di Nginx sul mio server. Qualsiasi soluzione alternativa o guida sarebbe molto apprezzata.

1 Mi Piace

Ciao @Anirudh_Dutta_Gupta :wave: benvenuto su Meta :slight_smile:

Hai già visto questo argomento:

Grazie @Lilly. Vorrei sapere se i permalink possono gestire anche un cambio di dominio completo. Giusto per chiarire, stiamo passando da abc.domain1.com a xyz.domain2.com. Sia il sottodominio che il dominio stanno cambiando. Ho letto questa discussione e volevo confermare:

Stai cercando di reindirizzare un argomento Discourse esistente a un URL esterno? Non è per questo che sono progettati i permalink. Sono abbastanza sicuro che non puoi reindirizzare nulla sotto /t.
Se vuoi che le persone che visitano https://hoidap.cheng.vn/t/cach-cua-do-nu-bao-binh-don-gian/70 2 vengano reindirizzate a https://cunghoangdao.info, penso che la cosa migliore sia modificare il post e dire alle persone di cliccare sul link per andare sull’altro sito.

1 Mi Piace

Quindi imposti

3 Mi Piace

Grazie @RGJ. Come procedo con il reindirizzamento generico? Sia il forum attuale che quello precedente sono su Discourse.

1 Mi Piace

Supponendo che tu rimuova il forum attuale, si tratta di un normale reindirizzamento Apache o nginx.

Per nginx

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

o Apache

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

Mi era sfuggita la parte in cui stai solo spostando Discourse e non migrando. Dato che stai solo spostando domini, non hai bisogno dei reindirizzamenti permalink.

2 Mi Piace

Era quello che pensavo originariamente, ma non riesco a trovare la cartella nginx in nessuna parte della directory /etc. Sto cercando nel posto sbagliato?

Questo perché c’è attualmente un’installazione di Discourse lì, che ha nginx nel container.

Sarebbe più facile puntare il vecchio hostname alla nuova istanza e gestire il reindirizzamento lì, vedi URL rewrite for domain change in permalinks - #7 by modius

In alternativa, rimuovere l’installazione di Discourse e configurare nginx sulla vecchia istanza.

1 Mi Piace

Grazie @RGJ per la guida. Ho finito per fare un dominio di livello direttamente dal nostro provider di nomi di dominio, e ha funzionato. I vecchi link stanno reindirizzando correttamente ai nuovi link.

4 Mi Piace

Ecco il metodo che utilizzo per un reindirizzamento completo dopo una modifica del dominio, ho mescolato alcune soluzioni offerte in questo forum.

Nell’app.yml, alla fine aggiungo i blocchi after_web_config e after_ssl:

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"

## Qualsiasi comando personalizzato da eseguire dopo la build
run:
  - exec: echo "Inizio dei comandi personalizzati"
  ## Se si desidera impostare l'indirizzo email 'Da' per la prima registrazione, decommentare e modificare:
  ## Dopo aver ricevuto la prima email di registrazione, ri-commentare la riga. Deve essere eseguita solo una volta.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fine dei comandi personalizzati"

Reindirizzerà i vecchi link ai nuovi forum, senza problemi SSL.

4 Mi Piace

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