Aller au contenu

Rewrite URL et Redirect 301


Sujets conseillés

Bonjour à tous,

je planche sur un problème depuis cet après-midi sans pouvoir m'en sortir, aussi je viens vous demander de l'aide.

J'ai fait de l'URL Rewriting sur un site existant et déjà référencé dans Google. Mais avec les nouvelles URL, j'ai oublié de faire les redirections 301 pour garder les pages rank... :(

Le problème c'est que je n'arrive pas à avoir le bon code pour faire du rewriting et du redirect en même temps !

Au départ il y avait : http://www.domain.com/fr_FR/contact.php (indexée et page rankée)

Maintenant : http://www.domain.com/fr/contact/ (indexée et sans page rank)

Je voudrais dire à Google que ces 2 URL sont au final le même fichier php, et que dorénavant http://www.domain.com/fr_FR/contact.php va à http://www.domain.com/fr/contact/.

Voici la ligne de mon fichier .htaccess du dossier /fr_FR:

RewriteRule ^contact.php$ http://www.domain.com/fr/contact [R=301,QSA]

La redirection se passe bien, mais arrivé sur la page http://www.domain.com/fr/contact, j'ai une erreur 404.

et si je rajoute :

RewriteRule ^contact$ contact.php [QSA,L]

j'ai une jolie boucle infinie.

Comment lui dire de rewriter l'url avec une redirection 301 en même temps ?

Merci de votre aide.

Lien vers le commentaire
Partager sur d’autres sites

Hello,

J'ai trouvé la solution à mon problème en testant la variable THE_REQUEST dans une règle RewriteCond.

En fait, c'est ce test qui permet de faire la différence entre une redirection externe et un rewrite d'URL interne au serveur.


RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*contact\.php\ HTTP/
RewriteRule ^contact\.php$ http://www.domain.com/fr/contact/ [R=301,L]

RewriteRule ^contact/$ contact.php [L,NC,QSA]

Bonne journée.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...