Rediriger les anciennes URL de forum vers les nouvelles URL de Discourse à l'aide de permaliens

Redirection des anciennes URL de forum vers les nouvelles URL Discourse à l’aide de permaliens

Si vous êtes passé d’un autre logiciel de forum à Discourse en utilisant l’un de nos scripts d’importation, vous voudrez probablement que tous vos précieux résultats de recherche Google continuent de pointer vers le même contenu. Discourse dispose d’un moyen intégré pour gérer cela pour vous, comme alternative à l’écriture de règles nginx, en utilisant la table de recherche de permaliens.

La table de permaliens vous permet de définir deux choses : une URL à faire correspondre et ce que cette URL doit afficher. Il existe quelques options pour définir où l’URL doit rediriger. Définissez l’une des options suivantes :

  • topic_id : pour afficher un sujet
  • post_id : pour afficher un message spécifique dans un sujet
  • category_id : pour afficher une catégorie
  • tag_id : pour afficher une étiquette (tag)
  • user_id : pour afficher un profil utilisateur
  • external_url : pour rediriger vers une URL qui pourrait ne pas appartenir à votre instance Discourse

Par exemple, si les URL de sujets de votre ancien forum ressemblaient à http://example.com/discussion/12345, et que l’URL de ce sujet après l’importation est http://example.com/t/we-moved/987, vous pouvez configurer le mappage comme suit :

cd /var/discourse
./launcher enter app
rails c
Permalink.create(url: '/discussion/12345', topic_id: 987)

Discourse effectuera alors une redirection avec le code de statut de réponse http 301 (déplacé de façon permanente) vers l’URL correcte pour l’identifiant de sujet 12345. Le 301 devrait inciter les moteurs de recherche à mettre à jour leurs enregistrements et à commencer à utiliser les nouvelles URL.

Si vous souhaitez que certaines URL soient redirigées loin de Discourse, vous pouvez le faire en définissant external_url :

Permalink.create(url: '/discussion/12345', external_url: 'http://archived.example.com/discussion/12345')

Informations supplémentaires

Pour trouver l’identifiant d’une sous-catégorie, vous pouvez la rechercher par son slug comme suit :

Category.find_by_slug('products').id

Pour supprimer le lien permanent pour cette URL, faites ceci :

Permalink.find_by_url("/blah").destroy

Il ne peut y avoir qu’un seul enregistrement de lien permanent par URL, il suffit donc de rechercher par URL.

Création d’une carte de sujets de MyBB à Discourse

Questions de redirection de Discourse vers WordPress

Normalisation des liens permanents


Dernière révision par @SaraDev le 2022-06-03T20:00:00Z

37 « J'aime »