Problème de règle ne s'appliquant pas

Nouveau WRInaute
Bonjour à tous et merci d'avance pour votre aide,

Voici les deux règles que j'ai créées et qui devraient fonctionner :

Code:
RewriteRule (.*)*-c(.+)-p(.+)\.html$ $1/product_info.php?cPath=$2&products_id=$3 [L]

RewriteRule (.*)*-c(.+)-s(.+)-p(.+)\.html$ $1/index.php?cPath=$2&sort=$3&page=$4 [L]

Le problème c'est que cela ne fonctionne pas alors que la regle ci-dessous fonctionne nikel :
Code:
RewriteRule (.*)*-c(.+)\.html$ $1/index.php?cPath=$2 [L]

Quelqu'un saurait où j'ai fait une erreur ?

Merci,

Alex
 
Nouveau WRInaute
J'ai oublié de preciser que la premiere regle etait pour faire ce genre d'url :


Code:
RewriteRule (.*)*-c(.+)-p(.+)\.html$ $1/product_info.php?cPath=$2&products_id=$3 [L] 

tabouret-de-bar-c36_52-p281.html

et la seconde c le même type mais pour ca :
Code:
tabouret-de-bar-c36_52-s2a-p281.html
RewriteRule (.*)*-c(.+)-s(.+)-p(.+)\.html$ $1/index.php?cPath=$2&sort=$3&page=$4 [L]

ça peut vous aider à comprendre mon probleme...
 
WRInaute passionné
(.*)* ne sert à rien écris (.*)

Attention =>

pot-de-chambre-c25... va retourner un truc bizarre car il va trouver un -c.. qui ne sera pas le bon...
 
Nouveau WRInaute
Code:
RewriteRule ^(.*)-c(.+)-p(.+)\.html$ $1/product_info.php?cPath=$2&products_id=$3 [L]

Comme ca ?

mais le ^ est obligatoire ? il sert a quoi ? parceque sur mes autres regles je lai pas mis et ca fonctionne quand mem...

merci
 
WRInaute occasionnel
Déjà, le problème, c'est que les urls qui devraient être transformées par la 2eme règle sont interceptées par la 1ere :
Code:
(.*)*-c(.+)-p(.+)\.html
(.*)*-c(.+)-s(.+)-p(.+)\.html

Si tu passes une url du type machin-chose-something-pouet.html, au moment de passer la 1ere règle, il va découper ça comme ça :
(machin)-c(hose-something)-p(ouet).html
ou pour reprendre ton exemple pour le second cas :
tabouret-de-bar-c36_52-s2a-p281.html
deviendra
tabouret-de-bar/index.php?cPath=36_52-s2a&products_id=281


Donc il ne passera pas à la seconde règle puisqu'il a trouvé son bonheur.

Essaye ainsi (j'ai inversé les deux règles, mais surtout je m'arrange pour ne pas prendre le caractère '-' dans les champs $2, $3 et $4 :
Code:
RewriteRule ^(.*)-c([^-]+)-s([^-]+)-p([^-]+)\.html$ $1/index.php?cPath=$2&sort=$3&page=$4 [L]
RewriteRule ^(.*)-c([^-]+)-p([^-]+)\.html$ $1/product_info.php?cPath=$2&products_id=$3 [L]
 
Discussions similaires
Haut