Même pattern mais paramètre différent

Nouveau WRInaute
Bonjour à tous,

Est il possible avec un même pattern d'utiliser deux paramètres différents ?
Je m'explique :

Mon site se présente sous cette forme : http://monsite.com/index.php?mod=mon_module&act=monaction
J'ai donc écrit la règle suivante :
Code:
RewriteRule ^([A-Za-z0-9-_]*)/([A-Za-z0-9-_]*).html /index.php?mod=$1&act=$2 [L]
Qui me donne une url du type http://monsite.com/mon_module/mon_action.html

Sur certaine page j'ai besoin de passer un paramètre de type id , j'ai donc rajouté la règle :
Code:
RewriteRule ^([A-Za-z0-9-_]*)/([0-9]*)/([A-Za-z0-9-_]*).html /index.php?mod=$1&act=$3&id=$2
Qui me donne une url du type http://monsite.com/mon_module/10/mon_action.html

J'en arrive à ma question , comment puis je utiliser un paramètre autre que id (p en l'occurence) tout en gardant la structure d'url ?
J'ai penser à une solution de secours qui serait d'utiliser une règle du type
Code:
RewriteRule ^([A-Za-z0-9-_]*)/([A-Za-z0-9-_]*)/([A-Za-z0-9-_]*).html /index.php?mod=$1&act=$3&p=$2
que j'utiliserais comme ceci : http://monsite.com/mon_module/page-3/mon_action.html mais ca me convient moyennement car cela m'obligerai à retravailler le paramètre recu pour en extraire le chiffre.

Une idée ?

merci
 
WRInaute passionné
si tu veux qu'apache détermine un id à partir d'un autre paramètre : c'est pas possible. Ou alors il faut autant de RewriteRule que d'ID. Il n'y a pas moyen de déterminer une données qui n'est pas présente dans l'url si même d'accéder à une base de données.
 
Nouveau WRInaute
Non en fait ce que je veux c'est utiliser un nom de paramètre différents dans mon url.
Que le shema reste le même (module/chiffre/action) mais que "chiffre" correspondent dans un cas à "id" et dans l'autre à "p"
 
WRInaute passionné
ok

si tu as toujours /module/page-xx/action.html tu peux ajouter cette règle :
Code:
RewriteRule ^([A-Za-z0-9-_]*)/page-([0-9]*)/([A-Za-z0-9-_]*).html /index.php?mod=$1&act=$3&p=$2 [L]
RewriteRule ^([A-Za-z0-9-_]*)/([A-Za-z0-9-_]*).html /index.php?mod=$1&act=$2 [L]
si tu veux que le paramètre p contienne page-xx il faut déplacer "page-" dans la parenthèse.
 
Discussions similaires
Haut