En testant, je remarque que ni les articles anciennement crées ni les nouveaux n'intègre le changement au niveau des URLs. J'ai toujours une adresse de type /rubrique-old/001-nom-d-article au lieu de /rubrique-new/001-nom-d-article.
1- Comment faire pour que toutes les adresses soient mises à jour ?
2- Comment faire pour que les anciennes ne soient pas pour autant obsolètes ?
Je me doute que cela se passe dans le htaccess, j'ai naïvement testé un :
RedirectPermanent /rubrique-old http://www.site.fr/rubrique-new
Mais c'est encore pire puisque ma rubrique n'est plus accessible du tout (erreur 404).
En testant, je remarque que ni les articles anciennement crées ni les nouveaux n’intègre le changement au niveau des URLs. J’ai toujours une adresse de type /rubrique-old/001-nom-d-article au lieu de /rubrique-new/001-nom-d-article.
1- Comment faire pour que toutes les adresses soient mises à jour ?
2- Comment faire pour que les anciennes ne soient pas pour autant obsolètes ?
Je me doute que cela se passe dans le htaccess, j’ai naïvement testé un :
RedirectPermanent /rubrique-old http://www.site.fr/rubrique-new
Mais c’est encore pire puisque ma rubrique n’est plus accessible du tout (erreur 404).
En testant, je remarque que ni les articles anciennement crées ni les nouveaux n'intègre le changement au niveau des URLs. J'ai toujours une adresse de type /rubrique-old/001-nom-d-article au lieu de /rubrique-new/001-nom-d-article.
1- Comment faire pour que toutes les adresses soient mises à jour ?
vider la table url (couteau suisse ou plugin specifique effacer les url propres)
Mais dans ce cas, ca va regenerer les url et perdre completement les anciennes
2- Comment faire pour que les anciennes ne soient pas pour autant obsolètes ?
j'ai fait il y a quelques temps un petit plugin urledit (sur la zone, en svn uniquement je crois) qui devrait te permettre de mettre à jour manuellement les urls tout en conservant les anciennes.
Mais c'est tres peu testé et uniquement pour les url propres, pas arbo...
Et surtout, je crois que je n'avais pas codé la redirection des anciennes url sur les nouvelles en 301.
En gros, ce plugin repondra à ton besoin une fois terminé, donc n'hesite pas à le faire avancer, ton besoin correspond à ce qu'il y a dans la todo...
1- Comment faire pour que toutes les adresses soient mises à jour ?
il me semble bien qu'un simple recalcul des pages rubrique
(ou, plus globalement, un vidage du cache) suffit.
Bin , il me semble aussi,
en fait je confirme
Eh bien, ça ne paraît malheureusement pas aussi simple. J'ai bien vidé le cache dans le panneau de configuration, mais les urls gardent l'ancien nom de rubrique... et les nouveaux articles aussi ! Impossible de faire prendre en compte le nouveau nom de la rubrique !
Pour tester et tenter de résoudre l'affaire, j'ai voulu activer les urls perso en local, et ça ne fonctionne tout simplement pas !
Bon ce point là est levé. Il suffisait de :
1- Activer le module 'mod_rewriting' d'Apache2. Non, comme je croyais, ce n'est pas le cas par défaut.
2- D'indiquer je-ne-sais-quoi dans la configuration de l'hôte virtuel (?)...
3- Et de redémarrer le tout (Apache) bien sur.
Il fallait effectivement vider la table des urls pour faire revenir à zéro avec les urls le bon nom de rubrique.
Concernant les anciennes urls (pour que les liens de l'extérieur ne soient pas cassés), un petit tour qui va bien dans .htaccess permet tout simplement de rediriger un répertoire vers un autre :
« RedirectPermanent /rubrique-old http://www.site.fr/rubrique-new »
Pourquoi cela ne fonctionnait pas du premier coup ? Car j'avais inversé la logique, n'ayant pas bien compris le fonctionnement des redirections 301. La redirection fonctionnait bien, mais ne pointait sur rien (il fallait auparavant vider la table des urls, pour que celles-ci intègrent le nouveau nom de rubrique).
Le seul gros hic dans l'histoire : il ne faut pas avoir modifié manuellement les urls (pour les couper au bon endroit par exemple). En effet, quand spip va reconstuire les urls, il va les reconstruire à sa manière... et là, vous aurez tout à refaire ! D'ailleurs il ne vaut mieux pas que SPIP ait changé sa façon de créer les urls non plus : par exemple la longueur avant tronquage... mais (ouf) il est aussi possible de paramétrer ce dernier point.
Bref. Merci à vous.
Jonathan
PS : Désolé Stéphane, ton plugin m'aurait intéressé dans l'absolu, mais je cours, je cours... je regarderai à l'occasion !
Je crois que ça marche:
- une fois le nom de rubrique modifié, aller dans la page de la rubrique dans l'espace privé et cliquer sur voir en ligne (avec la loupe, à gauche).
Ensuite il faut vider le cache, pour que les autres pages affichent cette nouvelle url, mais la redirection est assurée (je crois que spip_urls stocke tout l'historique des urls, donc vider cette table est un peu dommage).
Eh oui, merci Mathieu, là voilà la vraie solution. Il ne suffisait pas de vider le cache, apparemment la prise en compte du nouveau nom de rubrique passait à la page "voir en ligne". Du coup, plus besoin de vider la table spip_urls, ce qui est plutôt génial, la redirection est en effet assurée.
Bon, la modif du htaccess est de trop maintenant, mais c'est pas bien méchant de revenir en arrière la dessus.