[url rewriting] numéros de page

Ziltoid Messages postés 34 Statut Membre -  
jb1993 Messages postés 98 Statut Membre -
Bonjour à tous.

J'ai un htaccess qui réécrit les urls comme ceci :

RewriteRule ^decouvrir.html$ page_int.php?page=1 [QSA,L]
RewriteRule ^liens.html$ page_int.php?page=2 [QSA,L]
RewriteRule ^partenaires.html$ page_int.php?page=3 [QSA,L]
...
RewriteRule ^contact.html$ page_int.php?page=10 [QSA,L]
RewriteRule ^credits.html$ page_int.php?page=11 [QSA,L]


Ca fonctionne bien... jusqu'à ce qu'on arrive à la page 10.
Une fois à page_int.php?page=10 et supérieur, il utilise la règle du page_int.php?page=1 ( à cause de la chaîne en commun page_int.php?page=10 ) et me sort donc comme nouvelles url decouvrir.html0, decouvrir.html1 ...

Une solution?
Configuration: Windows XP
Firefox 3.0.10

1 réponse

  1. jb1993 Messages postés 98 Statut Membre 3
     
    J'ai une petite question, la page s'appelle vraiment 1, 2 ou autre .php ? Sinon, je pourrais vous conseillez une "capture". Voici un petit exemple :

    # affiche_page nom
    RewriteRule ^([a-z]+)\.html$ affiche_page.php?page=$1 [L]

    De la sorte, vous n'aurez qu'à vérifier $_GET['page'] et inclure la page si l'url n'a pas été modifier. Par exemple :

    <?php if(isset($_GET['page'])) //Vérifie si la variable $_GET['page'] existe.
    {
    $page = array ("index", "contact", "lien", "partenaire"); // Ici tout les noms de pages dans l'array

    for($i = 0; $i < 4; $i++) // On utilise une boucle for pour parcourir l'array
    {
    if($page[$i] == $_GET['page']) // Si la valeur de $_GET['page'] est égal à l'une des valeurs de l'array
    include($_GET['page'] . '.php'); // Alors on l'inclut dans la page (En rajoutant ou pas un .php)
    }
    }
    else // Sinon, on inclut l'index
    {
    include('index.php');
    } ?>

    Voilà un petit morceau de code, en espérant vous avoir aidé ^^
    0