phpBB3 Forum auf Discourse migrieren

Sie meinen unter /admin/site_settings/category/all_results nach permalink_redirects suchen? Diese Einstellung existiert bei mir nicht.

Aber permalink_normalizations funktioniert irgendwie, indem es /^forum\\/(view.*)/\\1 verwendet:

  • Alle phpBB-Links beginnen mit view, wie viewtopic.php und viewforum.php. Tatsächlich scheinen dies die einzigen beiden URLs zu sein, die in unserem Fall migriert wurden, sodass der Regex gehärtet oder in zwei aufgeteilt werden könnte, um den vollständigen Pfad abzugleichen.
  • Dieser Regex (sed-Syntax) nimmt also alle URLs, die mit /forum/view beginnen, und entfernt den Teil /forum/.

Jetzt müssen wir nur noch alle /phpbb/ (unser alter Forumspfad) zu /forum/ auf dem Webserver (oder in unserem Fall Cloudflare) umleiten und Discourse erledigt den Rest. Hätte ich das vor ~3 Jahren gefunden, anstatt alle Backlinks zu zerstören :lächelnderträne:.

Aber lassen Sie mich wissen, wo sich dieser permalink_redirects befinden soll, vielleicht benötigt er ein Plugin oder war Teil des phpBB-Import-Plugins oder so?

EDIT: Funktioniert gut:

root@micha:~# curl -IL https://dietpi.com/phpbb/viewtopic.php?p=46083
HTTP/2 301
location: /forum/viewtopic.php?p=46083

HTTP/2 301
location: https://dietpi.com/forum/t/is-there-a-simple-launch-page-for-dietpi/11237/1
x-discourse-route: permalinks/show

HTTP/2 200
x-discourse-route: topics/show

Die erste Umleitung /phpbb => /forum erfolgt bei Cloudflare über eine Umleitungsregel, um triviale Last von unserem Ursprung fernzuhalten. Die zweite Umleitung zum eigentlichen Thema erfolgt bei Discourse über Permalinks, wobei /forum/ durch die Permalinks-Normalisierung entfernt wird, um die von Discourse hinzugefügten Permalinks abzugleichen, die weder den alten noch den neuen Foren-Unterverzeichnispfad enthalten.