Passage de paramètre en GET après Rewriting (après le ?)

Nouveau WRInaute
Bonjour à tous !

Je souhaite utiliser l'url rewriting d'Apache comme ceci :

Mon .htaccess :
Code:
RewriteEngine  on
RewriteBase    /Shui
RewriteRule    ^(.*).html index.php?page=$1


Ex : Toute les pages demandés comme news.html sont en fait redirigé vers index.php?page=news

Jusque là tout va bien !

Mais, là où se trouve mon problème, est quand je souhaite passer des variables en GET pour avoir accès aux archives de ces mêmes news.
Je souhaiterai utiliser un lien du style : news.html?debut=5&fin=10
qui me redirigerai pépère vers index.php?page=news&debut=5&fin=10

Voila les modifications apportés à mon .htaccess :


Code:
RewriteEngine    on
RewriteBase     /Shui
RewriteRule     ^(.*).html?(.*) index.php?page=$1&$2
RewriteRule     ^(.*).html index.php?page=$1


qui ne fonctionne pas !

Je viens de lire ce topic mais je n'ai malheureusement pas pu résoudre mon soucis...
Je ne sais pas utilisé le flag [QSA] et la soluce apporté par ChezThierry n'est pas identique à ma configuration de rewriting.

Donc je vous demande un peu d'aide à tous ! Merci...
 
WRInaute impliqué
Une URI pour apache s´arrête après l´extension de fichier. Le ? détermine la fin de celle-ci, et le début de ce qu´on appelle la Query String, chaine de variables.
Le mod_rewrite ne permet pas de modifier cela depuis une rewriteRule. Mais tu peux y accéder par deux moyens:
-si tu veux juste faire suivre cette chaine, il faut un drapeau [QSA] a la fin de toutes tes règles par lesquelles ton url va passer.
-si tu veux modifier ta query string, tu dois faire une rewriteCond et mettre en motif tes possibilités de variables:
ta query string est:
nomvar1=nimporte quel nombre
RewriteCond %{QUERY_STRING} nomvar=([0-9]+)
puis appelle ce motif par les variables serveurs %:
RewriteRule ^url1$ url2?autrenom=%1
où %1 sera le résultat de ta variable...
 
Discussions similaires
C
Réponses
4
Affichages
1K
christele2
C
Haut