[url rewriting] numéros de page [Fermé]

Signaler
Messages postés
33
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
6 août 2014
-
jb1993
Messages postés
85
Date d'inscription
dimanche 17 août 2008
Statut
Membre
Dernière intervention
7 septembre 2011
-
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?

1 réponse

Messages postés
85
Date d'inscription
dimanche 17 août 2008
Statut
Membre
Dernière intervention
7 septembre 2011
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é ^^