Besoin d'aide pour la redirection après avoir changé le domaine de mon forum Discourse

Après avoir déplacé mon forum Discourse vers une nouvelle instance et URL, j’ai besoin d’aide pour configurer la redirection de domaine.

Je souhaite que les liens de l’ancien domaine redirigent vers le nouveau domaine. Par exemple, un lien comme https://anciendomaine.com/t/topic/89520 devrait rediriger vers https://nouveaudomaine.com/t/topic/89520.

J’ai entendu parler de l’utilisation d’une redirection 301, mais j’ai du mal à trouver le répertoire de configuration Nginx sur mon serveur. Toute solution alternative ou toute aide serait grandement appréciée.

1 « J'aime »

Salut @Anirudh_Dutta_Gupta :wave: bienvenue sur Meta :slight_smile:

As-tu déjà vu ce sujet :

Merci @Lilly. J’aimerais savoir si les permaliens peuvent également gérer un changement de domaine complet. Pour clarifier, nous passons de abc.domain1.com à xyz.domain2.com. Le sous-domaine et le domaine changent tous les deux. J’ai lu cette discussion et je voulais confirmer :

Essayez-vous de rediriger un sujet Discourse existant vers une URL externe ? Ce n’est pas ce que les permaliens sont conçus pour faire. Je suis à peu près sûr que vous ne pouvez pas rediriger quoi que ce soit sous /t.
Si vous voulez que les personnes qui visitent https://hoidap.cheng.vn/t/cach-cua-do-nu-bao-binh-don-gian/70 2 soient redirigées vers https://cunghoangdao.info, alors je pense que votre meilleure option est de modifier le message et de dire aux gens de cliquer sur le lien pour aller sur l’autre site.

1 « J'aime »

Vous configurez donc

3 « J'aime »

Merci @RGJ. Comment dois-je procéder avec la redirection générique ? Les forums actuels et précédents sont tous deux sur Discourse.

1 « J'aime »

En supposant que vous allez supprimer le forum actuel, il s’agit simplement d’une redirection Apache ou nginx normale.

Pour nginx

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

ou Apache

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

J’avais manqué la partie où vous ne faites que déplacer Discourse et non migrer. Puisque vous ne faites que déplacer des domaines, vous n’avez pas besoin des redirections de permaliens.

2 « J'aime »

C’est ce que je pensais à l’origine, mais je ne trouve le dossier nginx nulle part dans le répertoire /etc. Est-ce que je cherche au mauvais endroit ?

C’est parce qu’il y a actuellement une installation de Discourse, qui a nginx dans le conteneur.

Il serait plus facile de pointer l’ancien nom d’hôte vers la nouvelle instance et de gérer la redirection là-bas, voir URL rewrite for domain change in permalinks - #7 by modius

Alternativement, supprimez l’installation de Discourse et configurez nginx sur l’ancienne instance.

1 « J'aime »

Merci @RGJ pour vos conseils. J’ai fini par faire un niveau de domaine directement auprès de notre fournisseur de noms de domaine, et cela a fonctionné. Les anciens liens redirigent correctement vers les nouveaux liens.

4 « J'aime »

Voici la méthode que j’utilise pour une redirection complète après un changement de domaine. J’ai mélangé plusieurs solutions proposées sur ce forum.

Dans le fichier app.yml, à la fin, j’ajoute les blocs after_web_config et 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"

## Any custom commands to run after building
run:
  - exec: echo "Beginning of custom commands"
  ## If you want to set the 'From' email address for your first registration, uncomment and change:
  ## After getting the first signup email, re-comment the line. It only needs to run once.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

Cela redirigera les anciens liens vers les nouveaux forums, sans problème SSL.

4 « J'aime »

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