Version complète: sur le forum Webmaster Hub : détection d'espaces dans query string
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
cognotte
Bonjour,

Je rewrite les urls d'un oscommerce pour que la recherche soit plus sexy wink.gif.
Je me creuse la tete depuis hier sans trouver pourquoi le code suivant ne detecte pas les espaces dans ma query string :

CODE
RewriteCond %{QUERY_STRING} ^search_in_description=1&keywords=([\w\+\s]+)(&sort=[0-9a-z]{2})?(&page=([0-9]+))?(&.*)?$
RewriteRule ^advanced_search_result\.php$ recherche/%1-page%4.html?%2%5 [R=301,L]


Donc ce code fonctionne tres bien pour :

CODE
advanced_search_result.php?search_in_description=1&keywords=mot+clef&page=3
qui donne
recherche/mot+clef-page3.html

de meme

advanced_search_result.php?search_in_description=1&keywords=mot+clef&sort=6a&page=3
qui donne
recherche/mot+clef-page3.html?&sort=6a

par contre

advanced_search_result.php?search_in_description=1&keywords=mot clef&page=3
ne donne rien


Je ne comprend pas bien ou est mon pb.

Si je pouvais profiter des vos lumieres...

Benoit
captain_torche
En toute logique, un espace est toujours encodé de la manière suivante dans une url : %20
Je ne crois pas que tes règles de réécriture permettent de les détecter.
cognotte
Arf, c'est bien dommage tout ca.
Et le %20 y'a pas moyen de le spécifier dans la regle ?
captain_torche
Tu peux sans doute ajouter le pourcent dans ta règle de réécriture :
CODE
([\w\+\s%]+)
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.