Compléter l'url rewriting par une redirection

Nouveau WRInaute
Bonjour à tous,

J'ai procédé à l'url rewriting de certaines de mes pages dans le .htaccess de la manière suivante :
Code:
RewriteRule ^([a-z0-9_-]+)-l\.php$ /boutique/catalog/view_label.php?path=label&article=$1 [QSA,L,NC]

Maintenant pour éviter le duplicate containt, je souhaiterais faire une redirection des anciennes pages vers les nouvelles car j'ai vu que Google allait toujours visiter les anciennes...
J'ai tenté de la manière suivante :
Code:
RedirectPermanent view_label.php?path=label&article=1_pour_la_planete /1_pour_la_planete-l.php
ou
Code:
RedirectPermanent /boutique/catalog/view_label.php?path=label&article=1_pour_la_planete /1_pour_la_planete-l.php
Mais sans succès, lorsque je tape l'adresse ancienne, il n'y a pas de redirection!
Est-ce quelqu'un sait d'où peut venir le problème?

D'autre part, comment dois-je procéder pour ne pas à avoir à rediriger manuellement toutes les anciennes pages répondant à la réécriture ci-dessus?

Merci d'avance

Laurent
 
WRInaute impliqué
Le plus simple est de gérer ça au niveau PHP selon moi.
Pour chaque page, tu décide quelle URL elle doit avoir, et si l'URL courante n'est pas la bonne, tu rediriges le visiteur.
 
Nouveau WRInaute
bonjour,

merci pour vos réponses, j'ai essayé ca:

Code:
RewriteCond %{QUERY_STRING} ^article=(.*)$
RewriteRule ^view_label.php?path=label&article=$1 /%1.php? [R=301,L]
RewriteRule ^([a-z0-9_-]+)-l\.php$ /boutique/catalog/view_label.php?path=label&article=$1&rewriting [L]
mais sans succès, ça ne marche pas :-(
est ce que qqn peut m indiquer l erreur?
 
WRInaute passionné
rewriterule ne match pas les paramètres (après ?). il faut donc mettre :
Code:
RewriteCond %{QUERY_STRING} ^path=label&article=([^&]*)$
RewriteRule ^view_label\.php /%1.php? [R=301,L]
RewriteRule ^([a-z0-9_-]+)-l\.php$ /boutique/catalog/view_label.php?path=label&article=$1&rewriting [L]
 
WRInaute passionné
c'est pas normal. ce paramètre est là pour éviter que la redirection ne boucle avec la réécriture. il n'est utilisé que pour la réécriture. il est donc invisible par les moteurs de recherche.
 
Nouveau WRInaute
Pourtant la page du lien précédent existe bien...

Voici le code inscrit dans le .htaccess
Code:
RewriteCond %{QUERY_STRING} ^path=label&article=([^&]*)$
RewriteRule ^view_label\.php$ /boutique/catalog/%1-l.php? [R=301,L]
RewriteRule ^([A-Za-z0-9_-]+)-l\.php$ /boutique/catalog/view_label.php?path=label&article=$1&rewriting [L]

Y voyez vous une erreur?
Est-ce que "&rewriting" est indispensable?
 
WRInaute passionné
je ne vois pas d'erreur.
enlève le "&rewriting" et vérifie que ca ne créé pas de boucle infinie avec la redirection.
 
Nouveau WRInaute
aie....
si j enlève le &rewriting, ça ne marche plus, il y a une erreur ...

as tu une autre solution?
merci pour ton aide :)
 
Nouveau WRInaute
Bonsoir,
Ne pourrait-on pas demander à Google de ne pas se rendre sur les pages se terminant par "&rewriting", dans le fichier robot.txt par exemple?
Laurent
 
WRInaute passionné
pour le robots.txt je ne sais pas

en tout cas c'est possible avec google webmaster tools depuis peut : tu peux indiquer les paramètres a ne pas prendre en compte.
 
Nouveau WRInaute
merci pour té réponse,

en allant dans webmaster tool, ils proposaient en effet l'option mais limitée a 100 liens.
j'ai donc opté pour le robot.txt dans lequel j'ai listé ttes mes url concernées par le "&rewriting"
j espère que ce sera bien pris en compte par google et que cela ne fait pas trop d urls!

merci pour ton aide :)
 
Discussions similaires
Haut