|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 5 ![]() |
Salut,
J'aimerai qu'une personne (ou plus) qui s'y connait bien en Url rewriting et en redirection 301 me dise si ce que je veux faire est bien faisable et comment m'y prendre. J'ai un site dont j'aimerai réécrire l'url des pages d'articles. L'url d'origine est écrite sous cette forme : index.php?page=article&id=123 Quand je la réécrit cela donne (le forme actuelle) : article123.html Maintenant j'aimerai faire une réécriture du genre : 123-nom-de-l-article.html Le problème c'est que toutes les pages de mon site sont déjà indexées et bien positionnées et je n'aimerai pas perdre ça. Comment faire pour faire une réécriture et dire à Google que ma première redirection est redirigée (301) vers la nouvelle. Je ne sais pas si c'est claire. J'ai pas arrêté d'y pensé depuis 2 jours mais je ne vois toujours pas comment m'y prendre. Merci d'avance pour vos réponses. |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 5 ![]() |
Bon je progresse.
Voila ce que j'ai essayé : Code :
RewriteRule ^([0-9]+)-([0-9a-z-]+).html$ article$1.html [L] Pourriez vous svp m'aider ? |
|
|
00
|
|
|
#3 | ||
![]() ![]() Inscription : août 2005 Messages : 8 277 ![]() |
Il faut que tu réécrives les URL en article[0-9]+\.html sur une page PHP qui va recalculer la nouvelle URL et rediriger avec
Code PHP :
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
||
|
|
00
|
|
|
#4 | |||||
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 5 ![]() |
Citation:
Sinon, le nom de l'article provient d'une base de données mais pour trouver l'article en question c'est pas l'url réécrite qui va en décider mais plutôt l'id de l'article en début de l'url. Par exemple : monsite.com/123-ceci-est-l-article-original.html renverra le même article que monsite.com/123-ceci-n-est-pas-l-article-original.html puisque ce qui prime c'est l'id "123" de l'article à afficher. Je ne sais pas si c'est clair. Est ce qu'un simple : Code :
Merci. |
|||||
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : août 2005 Messages : 8 277 ![]() |
On est bien d'accord que c'est l'ID qui figure dans l'URL qui sert à retrouver l'article à afficher, mais là n'est pas le problème. Pour faire ça, tu as déjà la règle qui va bien.
Si j'ai bien compris, il faut faire en sorte que quand quelqu'un (un Googlebot par exemple) demande l'URL article123.html, il faut en fait le rediriger en 301 sur 123-nom-de-l-article.html. Est-ce bien ça ? Tout ce que je dis c'est que pour faire cette redirection, si on ne veut pas écrire un .htaccess de 15 km de long avec toutes les URL d'article possibles, Apache ne peut pas tout faire car il ne sait pas se connecter à une base de données. Il faut donc rediriger les URL article[0-9]+\.html vers un script PHP qui va faire la requête en base de données (car une fois de plus, Apache ne sait pas le faire) pour calculer l'URL et faire la redirection 301.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#6 | |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 5 ![]() |
Citation:
Est-ce qu'il ne serait pas possible d'utiliser une seule instruction de redirection 301 pour toutes mes url puisqu'on peut utiliser des REGEX dans .htaccess. Un truc du genre : rediriger en 301 -> article([0-9]+).html vers -> $1-([0-9a-z-]+).html Peu importe ce qui se trouvera dans le ([0-9a-z-]+) puisque c'est moi qui réécrira l'url de la même façon à chaque fois donc aucun risque de duplicate content. Merci encore une fois pour ton aide. |
|
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : août 2005 Messages : 8 277 ![]() |
Là est bien le problème : dans un .htaccess, ce sera nécessairement une valeur fixe. En gros, tu passeras de article123.html à 123-article.html, super...
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com