Surfoo Ça va ? ok. | Ca n'est pas le sujet mais je vais répondre quand même :
- Pour pouvoir changer facilement le format de l'url sans aller dans toutes les pages du site.
- Activer ou désactiver l'URL rewriting facilement
- Le système de back office (pas réalisé par moi) pour écrire des liens internes au site n'utilise pas l'url rewriting mais les URL normales (exemple : index.php?lg=fr&rub=01&srub=02)
Donc tout ça pour dire que j'aimerais bien ce système de masque pour avoir les liens réecrit.
Donc pour l'instant j'ai modifié ma fonction, et ça fonctionne : (j'avais pas mis ^ et $)
Code :
- function rewriteURL($url) {
-
- $url=delaccent($url);
-
- $extension=".html";
- $separateur="-";
-
- switch(TRUE) {
- case (preg_match_all("#^index\.php\?lg=(\w{2})$#Usi", $url, $matche, PREG_PATTERN_ORDER)) :
- $format="%s";
- $urlrewrite = sprintf($format, $matche[1][0]).$extension;
- break;
-
- case (preg_match_all("#^index\.php\?lg=(\w{2})&rub=([\w-]*)$#Usi", $url, $matche, PREG_PATTERN_ORDER)) :
- $format="%s/test-%s";
- $urlrewrite = sprintf($format, $matche[1][0], $matche[2][0]).$extension;
- break;
-
- case (preg_match_all("#^index\.php\?lg=(\w{2})&rub=([\w-]*)&srub=([\w-]*)$#Usi", $url, $matche, PREG_PATTERN_ORDER)) :
- $format="%s/rub-%s/srub-%s";
- $urlrewrite = sprintf($format, $matche[1][0], $matche[2][0], $matche[3][0]).$extension;
- break;
- default:
- $urlrewrite = $url;
- }
-
- return $urlrewrite;
- }
|
donc dans ce cas, je dois faire comme dans le .htaccess : ecrire tous les masques correspondant à mes URL.
Mais pour que ça soit plus simple, je voudrais avoir un tableau qui me retourne le nom de la page, les arguments, et les valeurs des arguments. Donc j'en suis arrivé à ça :
Code :
- preg_match_all("#^([\w-\.]+)\?(([\w-]+)=([\w-]*)(&?)+)$#si", $url, $matched, PREG_SET_ORDER);
|
Le problème c'est que ça ne marche pas vraiment et que je ne connais pas les regex à fond... Alors si quelqu'un à une idée pour résoudre ça, c'est cool |