auto Posté 24 Août 2006 Posté 24 Août 2006 Bonjour, J'ai un petit souci, j'ai une règle toute simple du style : RewriteRule ^cat/(.*)$ index.php?cat=$1 [QSA] mais un problème se passe lorsque je veux accéder à la catégorie toto+tata donc, c'est la page cat/toto%2Btata (le %2B est le code du +) mais elle est redirigé vers index.php?cat=toto+tata ( et donc, dans mon code, elle est interprété comme "toto tata") Y'a t'il un moyen pour que apache ne remplace par les %xx par leur équivalent lors de la réécriture ? merci d'avance
auto Posté 24 Août 2006 Auteur Posté 24 Août 2006 Si quelqu'un a la solution, je suis toujours preneur, j'ai décidé de contourner le problème. Avec un petit script php en haut de mon index.php comme $_SERVER['REQUEST_URI'] contient la bonne valeur : if (isset($_GET['cat'])){ // apache a déjà fait le rewrite $tmp=array(); preg_match('@/cat/([^\?]*)@',$_SERVER['REQUEST_URI'],$tmp); //on refait l'expression régulière if (count($tmp)>1){ // il est logiquement toujours trouvé $_GET['tags'] = rawurldecode($tmp[1]); // on met la bonne valeur cette fois ci }}
Dan Posté 24 Août 2006 Posté 24 Août 2006 Tu ne peux pas éviter à Apache d'interpréter les URLs, et cela reste valable pour les caractères spéciaux (y compris les caractères accentués). C'est donc effectivement dans ton script que tu dois les traiter
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant