Voir SiteSettings.permalink_redirects
Edition : oups. Normalisations des permaliens
Voir SiteSettings.permalink_redirects
Edition : oups. Normalisations des permaliens
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 :
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.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
.
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.
Désolé. C’est ce que je voulais dire.
Non. Il suffit de créer une normalisation pour ce chemin.
Cela ne fonctionne pas, puisque Discourse vit à /forum et ne voit aucune requête vers /phpbb. Avec Discourse sur un sous-chemin, qui ne correspond pas au chemin du logiciel de forum précédent à importer, il n’y a pas moyen de contourner la mise en place d’une redirection (ou d’une réécriture avant le proxy) vers le chemin Discourse, pour que sa normalisation devienne effective.
C’est exact. J’avais oublié cela. Vous devez rediriger /phpbb vers /forum, et probablement toujours vous soucier des normalisations.
D’accord, mais ce n’était effectivement pas très difficile : /^forum\\/(view.*)/\\1 fonctionne parfaitement pour nos anciens permaliens phpBB. Je ne suis pas sûr que, selon les paramètres, le plugin d’importation génère d’autres permaliens que viewforum.php et viewtopic.php, comme éventuellement des liens vers des profils d’utilisateurs ou autres ?
Ce serait en fait bien d’avoir un moyen de faire défiler/parcourir ou trier les permaliens, pour mieux savoir quels schémas d’URL sont contenus. Mais hors sujet, et après avoir parcouru les modèles de recherche, je suis certain que dans notre cas, seuls les deux ci-dessus existent.
Il semble que le script ne gère que les permaliens de catégorie, de sujet et de publication.
Si vous souhaitiez créer des permaliens d’utilisateur et que les profils d’utilisateur de l’ancien système incluent l’ID d’importation de l’utilisateur, vous pourriez les créer avec un peu de Ruby dans la console.
Bon à savoir. Et les URL des sujets et des messages utilisent le même script PHP. Donc, pour exclure toute normalisation involontaire, mon regex pourrait être divisé en deux :
/^forum\\/(viewforum.php\\?.*)/\\1 pour les catégories/^forum\\/(viewtopic.php\\?.*)/\\1 pour les sujets et les messages… ou /^forum\\/(view(forum|topic).php\\?.*)/\\1, je ne suis pas sûr de la différence marginale en termes de performance.
Les URL de profil sont de toute façon peu susceptibles d’avoir des backlinks. Nous les utilisons pour créditer les utilisateurs qui ont signalé des bugs ou dont les suggestions ont été intégrées à notre projet dans nos notes de version. Mais c’est un cas rare, je suppose, et les liens dans nos notes de version ont été mis à jour immédiatement lorsque nous sommes passés à Discourse.