Au départ, mon problème était simple: je voulais rediriger http://localhost/lst/(une(...) chaine) vers http://localhost/test.php?rating=(une(...) chaine) où une chaîne peut contenir des lettres minuscules, des - et des +
J'ai donc fait un petit .htaccess avec:
RewriteEngine on
RewriteRule lst\/([a-z\-\+]+)\/*$ test.php?rating=$1 [L]
A première vue, ça fonctionne: http://localhost/lst/all(...) donne
_GET[rating] = all
_SERVER[REDIRECT_QUERY_STRING] = rating=all
_SERVER[REDIRECT_URL] = /lst/all
_SERVER[QUERY_STRING] = rating=all
_SERVER[REQUEST_URI] = /lst/all
(test.php ne fait pour le moment que me donner le contenu des variables $_GET et $_SERVER)
Mais dès que je mets un +, ça ne fonctionne plus: http://localhost/lst/k-k+(...) donne:
_GET[rating] = k-k
_SERVER[REDIRECT_QUERY_STRING] = rating=k-k+
_SERVER[REDIRECT_URL] = /lst/k-k+
_SERVER[REQUEST_METHOD] = GET
_SERVER[QUERY_STRING] = rating=k-k+
_SERVER[REQUEST_URI] = /lst/k-k%2b
En fait, mod_rewrite a changé le %2B en +, et + dans une URL, c'est un espace...
Quelqu'un a une idée pour changer ce comportement ? (autrement que RewriteMap qui ne marche pas dans les .htaccess, et appeler http://localhost/lst/k-k%252b)(...)
# Oups
Posté par Moonz . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.