Bonjour

la structure des URL des page de mon site est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
index.php?class=MaClasse&func=MaFonction
le mod_rewrite et une regex me permet d'appeler cette page avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
MaClasse-MaFonction.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
RewriteRule ^([0-9a-zA-Z]*)-([0-9a-zA-Z]*)\.html$ index.php?class=$1&func=$2

Jusque-là, pas de problème, ça marche.



Maintenant j'aimerais pouvoir passer des paramètres supplémentaires à ma page.
par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Classe-fonction.html?param=val
et obtenir

Code : Sélectionner tout - Visualiser dans une fenêtre à part
index.php?class=MaClasse&func=MaFonction&param=var

j'ai essayé ceci mais ça ne fonctionne pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
RewriteRule ^([0-9a-zA-Z]*)-([0-9a-zA-Z]*)\.html(\??)([0-9a-zA-Z=&]*)$ /sites/teomi/index.php?class=Mv$1&func=$2&$4
Dans la variable $_GET je n'ai que les deux premiers paramètres (class et func)


A priori, l'expression est correcte, en exécutant le code PHP suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?php
$pattern = "^([0-9a-zA-Z]*)-([0-9a-zA-Z]*)\.html(\??)([0-9a-zA-Z=&]*)$";
$str = "MaClasse-MaFonction.html?param=val&param2=val2";
 
ereg($pattern, $str, $res);
 
echo '<pre>';
print_r($res);
echo '</pre>';
?>
j'obtiens
Array
(
[0] => MaClasse-MaFonction.html?param=val&param2=val2
[1] => MaClasse
[2] => MaFonction
[3] => ?
[4] => param=val&param2=val2
)

Est-ce que quelqu'un peut m'aider ?

Merci d'avance