Je crois que vous ne comprenez pas le but de mon message : ce n’est pas le fait que ma page rubrique soit vide qui me dérange - c’est que je n’obtienne pas une réponse 404 !
Reprenons depuis le début :
* J’avais des rubriques que j’ai décidé de supprimer pour réorganiser la structure de mon site
* Ma grande surprise, malgré le cache vidé, est que mon squelette rubrique.html continue de répondre sur les url "propres" qui correspondaient aux rubriques supprimées
* En regardant dans la base SQL, je me rends compte que tout a bien été supprimé avec mes rubriques SAUF les lignes correspondantes dans la table "url" : j’y retrouve pour chaque rubrique supprimée encore un enregistrement avec l’url "propre" associée
Constats :
* Lorsque l’url propre existe encore dans la table "url", le squelette rubrique.html renvoie un code HTML 200, mais par contre tout le contenu de la boucle RUBRIQUES est vide puisque la rubrique n’existe plus
* Lorsque je supprime manuellement l’url propre d’une des rubriques supprimée dans la table "url", et que je l’appelle ensuite, j’ai cette fois-ci un code 404 et c’est bien ce qui était attendu
* Dans la table url, j’ai retrouvé aussi des résidus d’url ne correspondant plus à d’autres objets supprimés : articles, syndic, et sûrement brèves mais je ne suis pas sûr car je n’en avais pas supprimé
Conlusions :
1- Spip ne fait pas bien le ménage dans la table "url" lorsque je supprime un objet : il devrait supprimer toutes les lignes contenant une url propre correspondant à l’objet supprimé (une rubrique ou article etc peuvent avoir plusieurs url)
2- Spip ne vérifie pas qu’une url propre appelée correspond réellement à un objet existant, et donc appelle tout de même le squelette lié au type d’objet - cela ne devrait effectivement pas arriver si le ménage du point 1 avait été correctement réalisé
3- Soit quelque chose merde dans ma version de Spip, soit le code de Spip contient un bug : c’est ce que je voulais comprendre, ou signaler si ça ne venait pas de moi
Quant à la question de coller le code de mon squelette : non, je n’ai pas de boucle rubrique englobant la totalité de mon squelette. Ce n’est pas à mon squelette de répondre du vide en cas d’erreur d’aiguillage de Spip, non ? A moins que la détection de page 404 fonctionne comme cela ?
Est-ce que quelqu’un qui a déjà supprimé des rubriques sur son site ET utilise des url propres pourrait me dire s’il reste des résidus non nettoyés dans sa base SQL ? Suis-je le seul à qui ça arrive ou est-ce bien un bug de Spip ?