Salut
Voila, j'ai un formulaire transmettant des mots clés en GET à une page de moteur de recherche.
La variable transmise est donc susceptible de recueillir des espaces, transformés grace à url_encode en "+". donc "un chien dans la rue" donne "un+chien+dans+la+rue"
Le probleme est que j'aimerai rewriter cette page de recherche, en transformant :
Mais je n'arrive pas à faire accepter le signe "+", sauf si j'utilise l'opérateur "." (qui apparemment peut pomper beaucoup de ressources)index.php?include=search&motscle=un+chien+dans+la+rue&page=1
en
search-un+chien+dans+la+rue-1
voici mon rewrite
RewriteRule ^search-(.+)$ index.php?include=search&motscle=$1 [L]
RewriteRule ^search-(.+)-([0-9]+)$ index.php?include=search&motscle=$1&page=$2 [L]
Et la je me retrouve confronté à un autre probleme :
Il prend le lien "search-un+chien+dans+la+rue-2" et compte "un+chien+dans+la+rue-2" en entier, en paramètre pour "motscle", donc sans tenir compte du "-2" qui devrait compter pour le paramètre "page". Ce qui fait que lorsque je clique sur le lien, je me retrouve avec "..2-2" puis "..2-2-2" puis "..2-2-2-2" et sans fin..
Je me dis qu'en autorisant les "+" il suffit d'interdire les "-" mais je n'arrive pas à trouver l'expression qui va bien.
([+a-zA-Z0-9][^-]+)
Quelle solution à ce probleme ? Est ce que je dois revoir les positions des variables de mon url rewriting ?
Merci.
Partager