[RESOLU] Url rewrite

Eléphant du PHP | 111 Messages

11 janv. 2014, 02:36

salut tout le monde!
je viens vers vous car je rencontre un problème avec l'url rewriting.
en faite actuellement j'utilise cette forme de réécriture :

Code : Tout sélectionner

RewriteRule ^(.*)-(.*)-([0-9]+)-([0-9]+)\.htm$ /detail.php?id=$4&plateform=$3&nom=$1&console=$2
et maintenant je vais passer sous cette forme:

Code : Tout sélectionner

RewriteRule ^([0-9]+)/([0-9]+)/(.*)-(.*)\.html$ /detail.php?id=$2&plateform=$1&nom=$4&console=$3
et mon souci c'est que je ne vois pas comment faire pour faire un redirect perment car si je met ma nouvelle réécriture toutes mes pages indexés me retourne erreur 404...

Merci pour votre aide :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 janv. 2014, 01:15

Bonjour,

Tu peux en avoir plusieurs des règles de réécriture donc il suffirait que tu ajoute une règle du genre :

Code : Tout sélectionner

ancien-nom-de-tes-pages.html => nouveau/nom/de/tes/pages.html
En ajoutant le flag [R=301] à la fin pour dire que c'est une redirection permanente (ça permet de garder le référencement et faire "migrer" le pagerank de tes anciennes pages vers les nouvelles)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 111 Messages

12 janv. 2014, 19:58

si je comprend bien je dois faire une règle par pages? Ca va êtres dur car j'ai 101868 pages...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 janv. 2014, 23:26

salut,

si tu as moyen de faire une règle générique c'est mieux.

101868 page physique ? c'est énorme.
Il y a surement des points commun entre les fichiers pour t'aider sinon oui tu va galérer :)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 111 Messages

12 janv. 2014, 23:49

salut non ce n'est pas des pages physique mais issue de ma page detail.php.
Tu a un exemple de règle générique ? Car moi j'ai testé pas de chose mais rien ne fonctionne...
Ou peut être avec une redirection en php?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 janv. 2014, 02:23

si je comprend bien je dois faire une règle par pages? Ca va êtres dur car j'ai 101868 pages...
Ah bah non !
C'est un truc du genre qu'il faut faire :

Code : Tout sélectionner

RewriteRule ^(.*)-(.*)-([0-9]+)-([0-9]+)\.htm$ /$1/$2/$3-$4.html [R=301]
Enfin là, j'ai fait ça à l'arrache sans regarder si les variables étaient bien placées, mais ça te donne l'idée. :)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 111 Messages

13 janv. 2014, 23:17

merci,
mais ce qui est étonnant c'est que j'ai tester cela avant mais ça me renvoyais 404...
Je vais re-tester car j'ai peut être fais une erreur la dernière fois.
Je te tiens au courant.

Eléphant du PHP | 111 Messages

17 janv. 2014, 18:42

une question encore quand j'utilise le code suivant :

Code : Tout sélectionner

RewriteRule ^(.*)-(.*)-([0-9]+)-([0-9]+)\.htm$ /$1/$2/$3-$4.html [R=301]
les $1, $2,$3 et $4 corresponde a l'url a réécrire ou a l'url de base?

Eléphant du PHP | 111 Messages

17 janv. 2014, 21:23

C'est tout bon ça fonctionne merci pour votre aide :D