Rewriting et modif url

fhorse

Nouveau WRInaute
Bonjour,

Après avoir parcouru le forum, j'ai trouvé des réponses à mes questions.
Je voulais en fait savoir si je pouvais transformer une url du type :

index.php?page=categorie&id=3

en

nom-de-la-categorie-3.html

J'ai donc vu dans le forum qu'il me suffisait de retravailler ma variable qui contient le nom de ma catégorie pour enlever les accents et autres caractères génants (pas de surprise à ce niveau là, c'est ce que je pensais)

Mais il me reste une petite question : comment faire si par exemple un utilisateur autorisé modifie le titre d'une catégorie dans la base ? Si par ex j'ai la catégorie "santé" qui devient "santé et bien être". Dans ce cas, mon url rewritée passera de

sante-3.html

à

sante-et-bien-etre-3.html

Le probleme c'est que la première url connue des robots et des internautes n'existera plus non ? Comment doit-on gérer cela ?

J'espère avoir été assez clair dans mon explication.

Merci.
 

jeroen

WRInaute passionné
En gros les URL de tes pages sont sensées changer, et ça va être un problème pour le reférencement. Le mieux est donc de ne pas indiquer le nom de la catégorie dans l'URL.
 

magic corp.

WRInaute occasionnel
Comme tu ne tiens compte que de l'ID, ta page sera accessible avec les deux lien. Par contre il faut, dans ton code PHP, tester l'adresse qu'a taper le visiteur pour le rediriger vers la bonne "orthographe" si il c'est planter.
 

fhorse

Nouveau WRInaute
Tout d'abord merci pour vos réponses.

Par contre il faut, dans ton code PHP, tester l'adresse qu'a taper le visiteur pour le rediriger vers la bonne "orthographe" si il c'est planter

J'ai un petit peu de mal à suivre. En fait, mon problème vient du fait que j'ai peur que la page soit indéxée en tant que par ex " sante-3.html " dans un premier temps. Et ensuite, si un admin gérant le contenu décide que la catégorie doit en fin de compte s'appeler sante et bien etre, on aura alors automatiquement " sante-et-bien-etre-3.html "
Du coup, est-ce que cela ne va pas poser un problème comme dit jeroen puisque cette page est inconnue au bataillon ?

Je m'inquiète plus pour l'indexation de la page que pour l'internaute (peut etre à tord) car je crois qu'il est possible de rediriger l'internaute sur la home quand la page est introuvable.
 

magic corp.

WRInaute occasionnel
Justement, si un robot arrive sur la page par le lien "sante-3.html" et bien au tout début de ton script, tu test l'adresse qu'a taper le visiteur (en l'occurrence le robot) et si c'est pas la bonne URL tu fais une redirection 301 vers la bonne URL, ce qui indique au robot que l'adresse de la page à changer et que c'est celle sur la quelle il a été redirigé qui la remplace.

Pour resumé:
Un visiteur tape "sante-3.html"
la règle de rewrite comprend que c'est "index.php?page=categorie&id=3"
apache vas donc executer index.php
Au tout debut de "index.php" tu recupère l'URL par laquel le visiteur est arrivé (dans mon exemple "sante-3.html") :
Code:
$_SERVER['REQUEST_URI']
et tu compars avec le lien actuel que devrais avoir "index.php?page=categorie&id=3" (soit "sante-et-bien-etre-3.html")
si les deux sont identique ... c'est bon on continue le script normalement.
Si c'est pas identique dans ce cas tu fait une redirection 301 vers la bonne URL ("sante-et-bien-etre-3.html") avec l'aide de la fonction header()

Est ce plus clair :? :D
 

Discussions similaires

Haut