[URL rewriting] Réécrire des pages multiples de 8 en page-1

WRInaute discret
J'essaie de me lancer dans l'Url rewriting, mais j'ai quelques problèmes
J'aimerai réécrire des pages qui agrègent à chaque fois 8 articles
Du style :
-http://monsite.com/dossier/page.php?debut=0&... = -http://monsite.com/dossier/page-1.php
-http://monsite.com/dossier/page.php?debut=8&... = -http://monsite.com/dossier/page-2.php
-http://monsite.com/dossier/page.php?debut=16&... = -http://monsite.com/dossier/page-3.php
etc...

S'il y avait des pros de l'url rewriting pour me dépanner...
D'avance merci
 
WRInaute discret
Je fait une proposition, même si je suis pas calé dans ce domaine. C'est en faisant des erreur qu'on apprend

Mais pourquoi pas quelque chose du genre :

Code:
RewriteRule ^page-([0-9]+).php       /page.php?debut=$1 [L]

Dans ta page php, tu récupère $_GET['debut'] et tu traites



Code:
$debut = (!empty($_GET['debut']))      ?      $_GET['debut']    : '';
$debut = ($debut-1)* 8;

Si tu vas sur page-1.php
($debut-1)* 8 = (1-1)* 8 = 0
Ce qui équivaut à page.php?debut=0&...

Si tu vas sur page-10.php
($debut-1)* 8 = (10-1)* 8 = 72
Ce qui équivaut à page.php?debut=72&...

Non ?
 
WRInaute accro
Bah tu connais la réponse on dirait :D T'as pas testé en fait ? Parce qu'il me semble que c'est bien ça ;)

Je ferais juste ceci pour récupérer la valeur:

Code:
$debut = intval($_GET['debut']);

Ca convertit en nombre, peut importe ce qu'on met en paramètre. Ca évite donc les injections de codes dans les urls ;)
 
WRInaute discret
Merci pour vos réponses
J'ai fait un test rapide, mais pour l'instant ca fait planter le serveur :(
Je vais donc peaufiner...
@+
 
WRInaute passionné
il ne faut pas oublier d'activer le moteur de réécriture. C'est plus clair de mettre un paramètre "page" pour ne pas confondre avec "debut" :
Code:
RewriteEngine On
RewriteRule ^page-([0-9]+)\.php$ /page.php?page=$1 [L]

Code:
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$debut = ($page - 1) * 8;

edit : correction
 
WRInaute discret
Petit oublie dans le php, $début n'a pas été remplacé par $page. Voilà :

Code:
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$page = ($page - 1) * 8;
 
Discussions similaires
Haut