Development #20760
Gestion des redirections sur changement d'URL
0%
Description
Quand une page change d'URL, parce que son slug est modifié, ou qu'elle est déplacée, il faudrait que l'ancienne localisation assure une redirection (certains diront une 301). (! et toutes les pages dessous)
Mon idée là est d'avoir un modèle genre "Redirections" (avec chemin et page id), dont des objets pourraient être créés lors du .save() d'une page. Et à l'affichage d'une page, au moment où aujourd'hui on retournerait une erreur 404, on chercherait après une redirection possible.
Fichiers
Révisions associées
general: keep a redirect on slug and parent changes (#20760)
Historique
Mis à jour par Pierre Cros il y a presque 6 ans
C'est vraiment nécessaire pour pouvoir réorganiser la doc sans douleur et du coup ce serait chouette que quelqu'un prenne ça.
Le chemin tracé par Fred pour y arriver me semble clair et ça ne nécessite pas de connaître les arcanes de Publik.
Mis à jour par Frédéric Péters il y a presque 6 ans
- Assigné à mis à Frédéric Péters
Mais bon, passons.
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0002-general-keep-a-redirect-on-slug-and-parent-changes-2.patch 0002-general-keep-a-redirect-on-slug-and-parent-changes-2.patch ajouté
- Fichier 0001-general-add-model-to-store-redirections-20760.patch 0001-general-add-model-to-store-redirections-20760.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-general-use-a-model-to-look-for-redirection-before-e.patch 0001-general-use-a-model-to-look-for-redirection-before-e.patch ajouté
- Fichier 0002-general-keep-a-redirect-on-slug-and-parent-changes-2.patch 0002-general-keep-a-redirect-on-slug-and-parent-changes-2.patch ajouté
Une version qui ajoute au modèle un timestamp, pour assurer qu'en cas de succession de changements, ça soit la plus récente référence qui l'emporte.
Mis à jour par Christophe Siraut il y a presque 6 ans
si je comprends bien la gestion des redirect est automatisée et transparente pour les utilisateurs; du coup les URL passées ne sont jamais "libérées"? J'imagine qu'un utilisateur pourrait vouloir déplacer une page et recréer une autre au nom de la première, c'est mal oui mais c'est possible.
Mis à jour par Frédéric Péters il y a presque 6 ans
Et ça ne donnerait pas une 404 et la page attendue serait servie. Dans la deuxième version du patch j'ai ajouté un timestamp, il peut aussi servir à "expirer" les redirections.
Mis à jour par Christophe Siraut il y a presque 6 ans
Perso le coté invisible/magique pour l'utilisateur m'ennuie un peu, j'aimerais
voir affichée la liste des redirections dans une section de la page
d'édition du backoffice; cela peut être ajouté utiltérieurement.
Le patch répond au besoin immédiat et est cohérent, ack.
Mis à jour par Frédéric Péters il y a presque 6 ans
- Statut changé de Solution proposée à Résolu (à déployer)
commit c905276c4570c8da4b38d5eab474bde3d7764adf Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu Jul 12 21:32:59 2018 +0200 general: keep a redirect on slug and parent changes (#20760) commit 13766c1a282ddc34b6e0eb2cbac9576f85f89f95 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu Jul 12 20:45:37 2018 +0200 general: use a model to look for redirection before emitting a 404 (#20760)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
general: use a model to look for redirection before emitting a 404 (#20760)