Tutoriaux > PHP / MySQL > URL rewriting: Résoudre le problème de variables $_GET vides chez OVH
Lorsque vous utilisez un fichier .htaccess pour faire de l'URL rewriting chez OVH, vous pouvez tomber sur un souci: les variables $_GET sont toujours vides après le rewriting. Voici la solution.
Prenons un exemple très simple de URL rewriting. Pour suivre ce tutoriel, vous devez déjà avoir quelques connaissances en rewriting et avoir un souci chez OVH
Voici le fichier .htaccess que nous utiliserons:
#----------INSCRIPTION
RewriteRule ^toto$ /toto.php [L]
RewriteRule ^toto/([a-z]+)$ /toto.php?mode=$1 [L]
En effet, la page toto.php contient un $_GET['mode'] vide. Vous avez beau tout essayer, cela fonctionne en local mais pas sur OVH.
La solution est tellement simple qu'elle en paraît frustrante pour ceux qui ont cherché longtemps. OVH active l'option Multiviews par défaut. Mais qu'est-ce que Multiviews?
Citation
Voici comment fonctionne MultiViews : supposons qu'un serveur reçoive une requête pour /some/dir/foo, que l'option MultiViews soit activée pour /some/dir, et que le fichier /some/dir/foo n'existe pas ; alors le serveur cherche les fichiers nommés foo.* dans le répertoire /some/dir, et construit une table de types à partir de ces noms de fichiers. Dans la table, chaque fichier se voit assigner les types de médias et les encodages de contenu tels qu'ils seraient envoyés si le client les demandait par leur nom propre. Apache choisit alors la meilleure représentation à envoyer au client, en fonction de ses préférences.
En bref, vos $_GET passent à la trappe. La solution est donc simplement de désactiver l'option Multiviews via le htaccess comme suit:
Options -MultiViews
Par Pouzy
, Le 08 Février 2012 à 19h55
Ce tutoriel est la propriété d'Aidoweb et ne peut en aucun cas être copié.
Aucun commentaire pour le moment.
Tutoriaux > PHP / MySQL > URL rewriting: Résoudre le problème de variables $_GET vides chez OVH