Accueil / Blog / Développement / URL Rewriting et le CMS SPIP 2
| jeu. | URL Rewriting et le CMS SPIP 2 Catégorie : Développement. Tags : Serveur, Apache, URL. |
|
| 18 | /09 | |
| 08 | ||
Après plusieurs heures de recherche via notre cher ami Google ainsi que sur le site spip-contrib.net, j’ai fini par trouver cette contribution qui traite exactement du type d’URL que je souhaitais obtenir et - comme tout développeur le sait - il est inutile de ré-inventer la roue, nul besoin de perdre du temps à développer quelque chose qui existe déjà.
J’ai donc mis en place les fichiers comme indiqué, cependant, après reset du cache et des URL "propres" dans la base de données, j’obtenais des erreurs 404 sur chaque page d’article ou de sous-rubrique. Je me suis tout d’abord pris à penser que l’origine du problème n’était autre qu’une configuration restrictive d’Apache sur mon serveur chez OVH mais il n’en est rien. C’est pourquoi j’ai du "mettre les mains dans le cambouis" et essayer de mieux comprendre le comportement de SPIP face aux URL "propres".
Vint ensuite une bataille sans pitié entre le fichier .htaccess et moi-même, mais encore une fois je faisais fausse route, le problème provenait du fichier propres-arbo.php. En effet, ayant compris que SPIP récupère l’URL entrée dans le navigateur pour ensuite la comparer à l’URL "propre" stockée dans la BDD, il apparaissait alors évident que de cette comparaison résultait une inégalité provoquant une erreur 404 (la page demandée ne correspond à rien dans la BDD donc elle n’existe pas).
J’ai testé la variable $url_propre récupérée dans l’URL par propres-arbo.php d’une manière très simple :echo $url_propre ; exit() ;et me suis effectivement rendu compte que le résultat pour avoir tapé http://votresite.com/rubrique/sous-... était uniquement sous-rubrique alors que dans la BDD le champs url_propre m’affichait rubrique/sous-rubrique. L’erreur était donc flagrante, dans le fichier propres-arbo.php puis dans la fonction recuperer_parametres_url() ; à la ligne 341, il était écrit :$url = substr($url, strrpos($url, ’/’) + 1) ; mais la fonction PHP strrpos() ; a pour effet de récupérer la position de la dernière occurrence du caractère spécifié (ici le slash) ; il fallait donc simplement modifier la ligne en question par :$url = substr($url, stripos($url, ’/’) + 1) ; car, en utilisant stripos() ; à la place de strrpos() ; c’est la position de la première occurrence du slash qui est renvoyée.
Fin du combat : Sebastien 1 - URL Rewriting sous SPIP 0 !
0 commentaire.
Billet lu 0 fois.
Écrit par : Sebastien P.
< Billet précédent | Haut de la page | Billet suivant >
Le module de commentaires est temporairement désactivé.
Merci de votre compréhension.
Ce Blog a pour principale vocation de traiter des nouveautés liées à la plateforme Web pour DJ Your-Mix, cependant certains billets traiteront aussi d’Internet dans la vie de tous les jours ainsi que de développement informatique en général. Nous vous souhaitons une bonne lecture.
Nombre total de billets : 36.
Nombre total de commentaires : 0.