problème Url Rewriting et GET

juanito
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 12:39

bonjour

je sais pas si c'est ici que je dois parler de mon problème, donc si c'est pas ici veuillez m'en excuser.

j'ai mis en place dans mon fichier htaccess un RewriteEngine

règles suivantes

Code : Tout sélectionner

RewriteRule ^((fr|en|es)+)/([a-zA-Z_]+)/([a-zA-Z_]+).html$ main.php?lg=$1&cat=$2&scat=$3 [L] RewriteRule ^((fr|en|es)+)/([a-zA-Z_]+)/([0-9]+)/([a-zA-Z_]+).html$ main.php?lg=$1&cat=$2&page=$3&scat=$4 [L]
quand je tape cet Url : http://www.monsite.com/fr/categorie/1/s ... gorie.html
je n'arrive pas récupérer normalement les variable passe dans l'url.

donc pour tester je fais un print_r($_GET) pour voir quels sont les variables et j'ai comme résultat :

Code : Tout sélectionner

Array ( [lg] => fr [cat] => fr [page] => souscategorie [scat] => 1 )
je comprends pas pourquoi il ne récupère pas normalement les valeurs passé en GET

savez vous pourquoi il inverse les valeurs, il y a t'il un problème sur le htaccess ?

Merci d'avance

ViPHP
ViPHP | 3607 Messages

20 janv. 2009, 13:09

Bonjour,
essaye ceci:
RewriteRule ^((fr|en|es)+)/([a-zA-Z_]+)/([0-9]+)/([a-zA-Z_]+).html$ main.php?lg=$1&cat=$3&page=$4&scat=$5 [L]
en fait pour la langue tu as deux parenthèses capturantes, du coup il faut passer directement à $3...
Pas sur que ça résolve tout mais bon ;)

juanito
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 14:55

yep merci, ca marche, en fait je commence a $2

Code : Tout sélectionner

RewriteRule ^((fr|en|es)+)/([a-zA-Z_]+)/([0-9]+)/([a-zA-Z_]+).html$ main.php?lg=$2&cat=$3&page=$4&scat=$5 [L]
mais y'a t'il une solution dans la mise en forme de la RewriteRule pour éviter de commencer a $2

ViPHP
ViPHP | 3607 Messages

20 janv. 2009, 14:57

Je ne vois pas trop l'interet...?
mais tu peux enlever ta première parenthès tout simplement vu qu'elle ne sert à rien...