Migrer un forum phpBB3 vers Discourse

Vous voulez dire à /admin/site_settings/category/all_results rechercher permalink_redirects ? Ce paramètre n’existe pas pour moi.

Mais permalink_normalizations fonctionne en quelque sorte, en utilisant /^forum\\/(view.*)/\\1 :

  • Tous les liens phpBB commencent par view, comme viewtopic.php et viewforum.php. En fait, ce semblent être les deux seuls URL migrés dans notre cas, donc le regex pourrait être renforcé, ou divisé en deux pour une correspondance de chemin complète.
  • Donc, ce regex (syntaxe sed) prend toutes les URL qui commencent par /forum/view et supprime la partie forum/.

Maintenant, il nous suffit de rediriger tous les /phpbb/ (notre ancien chemin de forum) vers /forum/ au niveau du serveur web (ou Cloudflare dans notre cas) et Discourse s’occupe du reste. J’aurais dû trouver cela il y a environ 3 ans, au lieu de casser tous les backlinks :smiling_face_with_tear:.

Mais faites-moi savoir où est censé se trouver ce permalink_redirects, peut-être qu’il nécessite un plugin, ou faisait partie du plugin d’importation phpBB ou autre chose ?

EDIT : Fonctionne bien :

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

La première redirection /phpbb => /forum se fait chez Cloudflare via une règle de redirection, pour éviter une charge triviale sur notre origine. La seconde redirection vers le sujet réel est effectuée dans Discourse via les permaliens, supprimant le forum/ initial via la normalisation des permaliens, pour correspondre aux permaliens ajoutés par le plugin d’importation phpBB, qui ne contiennent ni l’ancien ni le nouveau sous-répertoire du forum.