Redirect old forum URLs to new Discourse URLs using permalinks

Alte Forum-URLs mit Permalinks auf neue Discourse-URLs umleiten

Wenn Sie mit einem unserer Import-Skripte von einer anderen Forensoftware zu Discourse gewechselt sind, möchten Sie wahrscheinlich, dass Ihre hart erarbeiteten Google-Suchergebnisse weiterhin auf denselben Inhalt verweisen. Discourse verfügt über eine integrierte Methode, um dies für Sie zu handhaben, als Alternative zum Schreiben von nginx-Regeln, unter Verwendung der Permalink-Lookup-Tabelle.

Die Permalink-Tabelle ermöglicht es Ihnen, zwei Dinge festzulegen: eine URL, die abgeglichen werden soll, und was diese URL weiterleiten soll. Es gibt einige Optionen, um zu definieren, wohin die URL weitergeleitet werden soll. Legen Sie eine dieser Optionen fest:

  • topic_id: um ein Thema anzuzeigen
  • post_id: um einen bestimmten Beitrag innerhalb eines Themas anzuzeigen
  • category_id: um eine Kategorie anzuzeigen
  • external_url: um zu einer URL weiterzuleiten, die möglicherweise nicht zu Ihrer Discourse-Instanz gehört

Wenn beispielsweise die Topic-URLs Ihres ursprünglichen Forums wie http://example.com/discussion/12345 aussahen und die URL für dieses Thema nach dem Import http://example.com/t/we-moved/987 lautet, können Sie die Zuordnung wie folgt einrichten:

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

Discourse leitet dann mit dem HTTP-Antwortstatuscode 301 (dauerhaft verschoben) zur korrekten URL für die Topic-ID 12345 weiter. Die 301 sollte Suchmaschinen veranlassen, ihre Aufzeichnungen zu aktualisieren und die neuen URLs zu verwenden.

Wenn Sie möchten, dass einige URLs von Discourse weg umgeleitet werden, können Sie dies tun, indem Sie external_url festlegen:

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

Zusätzliche Informationen

Um die ID einer Unterkategorie zu finden, können Sie sie anhand des Slugs wie folgt nachschlagen:

Category.find_by_slug('products').id

Um den Permalink für diese URL zu löschen, tun Sie Folgendes:

Permalink.find_by_url("/blah").destroy

Es kann nur ein Permalink-Eintrag pro URL vorhanden sein, also suchen Sie einfach nach URL.

Erstellen einer Topic-Map von MyBB zu Discourse

Discourse zu WordPress Weiterleitungsfragen

https://meta.discourse.org/t/discourse-to-wordpress-redirect-questions/87031

Permalink-Normalisierung


Zuletzt überprüft von @SaraDev am 2022-06-03T20:00:00Z

37 „Gefällt mir“