un tiret dans le paramètre rewrité

WRInaute discret
Bonjour,

j'ai un problème avec le rewrite, voila je voudrai faire passer un paramètre mais il se trouve que ce paramètre est un mot clé et qui possède un tiret ou plusieurs comment dire au serveur de le prendre en compte mais sans l'interpréter .

je m'explique.

un rewrite normal serait plus de faire passer un id comme ci dessous :

RewriteRule [.]*-([0-9]*) page.php?%{QUERY_STRING}u=$1

qui donnerait comme exemple : ndd.com/article-15.html

en revanche ce que je voudrai c'est de faire passer un mot clé ou des mots clés en paramètre :

RewriteRule [.]*-([[:alnum:][:space:]]+) page.php?%{QUERY_STRING}u=$1

et dans ces mots clés il y'a des tirets

qui donnerait comme exemple : ndd.com/article-etude-science.html

en rouge c'est le paramètre qui sera retravaillé de l'autre coté ( on lui enlève les tirets et on le traite dans une requête pour faire sortir ce qu'il y'a dans la base de données) .

comment dire au serveur de prendre ce qui en rouge en tant que paramètre et ne pas s'arrêter à -etude


dans mon exemple plus haut j'ai mis
[[:alnum:][:space:]] pour que soit pris en compte un espace,
j'ai essayé [[:alnum:][:punct:]] pour que soit pris en compte la ponctuation (-) mais en vain ça ne marche pas.



j'espère que j'ai été assez explicite :lol: . merci d'avance.
 
WRInaute discret
merci pour vos réponses, mais j'y arrive pas

j'essaye autre chose

le séparateur de la variable est le slash (/) et dans le mot clé il y'a des tirets, ma question est comment faire pour que le le tiret soit pris en compte dans la variable.
exemple avec ci-dessous ça marche quand à la place des tirets on met espace.

RewriteRule [.]*/([[:alnum:][:space:]]+) page.php?%{QUERY_STRING}u=$1

j'ai essayé avec ça pour le tiret :
RewriteRule [.]*/([[:alnum:][:punct:]]+) page.php?%{QUERY_STRING}u=$1

ça marche mais le mot clé s'arrête au premier tiret ce qui vient après n'est pas pris en considération dans la variable (mot clé ) .

exemple : ndd.com/article/etude-science.html

les résultats remontent juste ce qu'il trouve avec etude et non etude et science .

merci
 
WRInaute discret
c'est bon j'ai reglé cela en faisant ça :

RewriteRule [.]*/([[:alnum:]-]+) page.php?%{QUERY_STRING}u=$1

voila si ça peut servir à qq1.

merci
 
WRInaute discret
heu encore une chose :lol: , comment itiliser le / (slash ) sans que que ça rentre en conflit avec les autres repertoires present dans mon site.

dans mon exemple :

RewriteRule [.]*/([[:alnum:]-]+) page.php?%{QUERY_STRING}u=$1

merci
 
Discussions similaires
Haut