annuaire-info

Bien plus qu'un annuaire d'annuaires !

Redirection 301

La redirection 301 est définie dans le document RFC2616 qui dit qu' »une nouvelle adresse a été définitivement allouée à la ressource demandée et toute référence future à cette ressource DEVRAIT utiliser la nouvelle adresse inidiquée« .

Les navigateurs modernes suivent automatiquement ces redirections 301. Ils affichent également la nouvelle adresse dans la barre d’adresse.

Conformément à RFC2616, cette même nouvelle adresse sera celle éventuellement ajoutée aux favoris du navigateur.

La norme recommande donc d’utiliser la redirection 301 quand le changement d’adresse d’une page est permanent.

Redirection 301 et moteurs de recherche

Selon RFC2616, les moteurs de recherche devraient remplacer automatiquement l’URL qui fait une redirection 301 par l’adresse destinataire de la redirection et ils devraient sauvegarder cette dernière comme adresse officielle du contenu concerné.

Quand une page a changé d’adresse de manière permanente, Google recommende d’ailleurs d’utiliser une redirection 301. Bizarrement, le numéro 1 des moteurs de recherche a parfois besoin de plusieurs semaines, voire de plusieurs mois, pour prendre en compte cette information dans les résultats de recherche.

Quand utiliser une redirection 301

La redirection 301 est la meilleure technique de redirection quand une page a changé d’adresse et que vous souhaitez que les moteurs de recherche remplace l’ancienne adresse par la nouvelle dans leur index. La nouvelle adresse bénéficiera de la réputation existante de l’ancienne. Le contenu de la nouvelle page peut être différent, mais le thème de la page devrait être identique.

Redirection 301 avec un fichier .htaccess

Si votre serveur permet l’utilisation d’un fichier .htaccess, plusieurs techniques sont disponibles pour définir une redirection 301:

  • redirection permanente définie simplement

    « Redirectpermanent« , « Redirect permanent » et « Redirect 301 » sont des commandes équivalentes. Elles sont suivies du nom de fichier ou de répertoire à rediriger et de l’adresse de destination de la redirection.

  • redirection permanente définie au moyen d’expressions régulières

    « RedirectMatch 301 regex URL-destination » et « RewriteRule regex URL-destination [L,R=301] » permettent d’utiliser des expressions régulières pour préciser l’origine et la destination de la redirection.

Ces techniques peuvent être utilisées pour éviter le « duplicate content », comme dans les cas présentés ici:

Voici quelques autres exemples simples:

  • Rediriger une page

    RedirectPermanent /ancien-dossier/ancienne-adresse.html http://www.domaine.com/nouveau-dossier/nouveau-fichier.html

  • Rediriger tout un dossier (chaque page de l’ancien dossier est redirigée vers la page de même nom dans le nouveau dossier)

    RedirectPermanent /ancien-dossier http://www.domaine.com/nouveau-dossier

  • Rediriger tout un site (chaque page de l’ancien site est redirigée vers la page de même nom dans le nouveau site)

    RedirectPermanent / http://www.domaine.com/

Puis deux exemples équivalents utilisant des expressions régulières:

  • Rediriger les adresses .html vers les adresses .php correspondantes

    RedirectMatch 301 (.*)\.html$ http://www.domaine.com$1.php

    RewriteEngine on
    RewriteRule ^(.*)\.html$ http://www.domaine.com$1.php [L,R=301]

Et un exemple un peu plus complexe d’une redirection fonction de la « query string » (variable après le point d’interrogation). Elle redirige:

  • /index.php?couleur=bleu vers http://www.domaine.com/bleu.html
  • /index.php?couleur=rouge vers http://www.domaine.com/rouge.html
  • /index.php?couleur=jaune vers http://www.domaine.com/jaune.html
  • RewriteEngine on
    RewriteCond %{QUERY_STRING} ^couleur=(.*)$
    RewriteRule ^index\.php$ http://www.domaine.com/%1.html? [L,R=301]

Redirection 301 par un script

On a vu que les expressions régulières dans le .htaccess permettait d’adapter la redirection à des besoins spécifiques. On peut aller encore plus loin en exécutant la redirection à l’intérieur d’un programme exécuté sur le serveur (PHP, Perl, ASP ou autre).

  • Exemple en PHP:
    <?php
    header("Status: 301 Moved Permanently", false, 301);
    header("Location: http://www.domaine.com/nouveau-dossier/nouveau-fichier.html");
    exit();
    ?>

Test d’une redirection 301

annuaire-info vous propose gratuitement son outil de test des redirections. Cet outil analyse l’en-tête HTTP et le contenu de la page pour identifier en quelques secondes les redirections 301, 302 et HTML (meta refresh).



17 commentaires à propos de “Redirection 301”

  1. Il manque juste une information à l’article : combien de temps est-ce que google peut mettre pour prendre en compte la redirection 301 dans ses résultats ?

    Ecrit le 5 décembre 2007 à 18h58 par EEE

  2. Avec une redirection 301, l’ancienne adresse sera remplacée par la nouvelle adresse, dans les pages de Google, quelques jours après la visite de l’ancienne adresse par Googlebot. Cela va donc très vite pour les pages crawlées fréquemment et nettement plus lentement pour des pages crawlées rarement.

    Ecrit le 12 décembre 2007 à 10h56 par Jean-Luc

  3. oui ça depend de la fréquence de passage du robot de google sur la page concernée

    Ecrit le 1 juin 2008 à 5h29 par enzo

  4. Je viens de faire la redirection 301 ce matin, mais qlq chose qui m’étonne c’est que google reconnaissait mon nouveau nom de domaine avant la redirection, puis il l’a ignorée et ensuite il l’a reconnue dans les résultats de recherche, puis encore une fois il l’a ignorée. Maintenant ça fait deux jours que mon nouveau nom de domaine est en attente de revenir sur les pages des résultats. J’espère que Monsieur Google fasse vite cette fois-ci.

    Ecrit le 2 août 2008 à 22h07 par coursgratuits.net

  5. Un peu de patience. Monsieur Google 😉 a des milliards de pages à traiter et mettre à jour le plus souvent possible !

    Ecrit le 2 août 2008 à 22h21 par Jean-Luc

  6. Merci pour toute cette documentation concernant les redirection… C’est vrai que c’est important de les mettre en place lorsqu’on change des urls pour conserver son positionnement et l’indexation des pages!!!

    :)

    Ecrit le 15 décembre 2008 à 10h49 par Sun location

  7. Aaaah; bien, je cherchais comment rediriger mon site j’ai enfin la réponse, je ne comprenais pas très bien avec les multiples solutions qui existe mais ton explication (par répertoire, un site entier…) est très claire, je bookmark, merci !

    Biz,
    Estelle

    Ecrit le 2 avril 2009 à 14h03 par Estelle

  8. Bonjour,

    Quelqu un a t il deja fait des redirection 301 avec un site sous Oxatis?

    d avance merci

    Ecrit le 22 juillet 2009 à 7h37 par autrementpro

  9. Oxatis, c’est de l’ASP. Une recherche de ASP redirection 301 sur Google devrait aider.

    Ecrit le 22 juillet 2009 à 8h18 par Jean-Luc

  10. Cet article c’est tout ce qu’il me fallait !

    Merci !

    Ecrit le 29 juillet 2010 à 10h37 par Xavier

  11. Bonjour;

    Pas pro du web j’ai juste besoin de rediriger quelques pages de mon site ancienne version vers des pages sites nouvelle version.

    le htaccess semble idéal pour cela, avec RedirectPermanent.

    J’ai essayé, et cela ne fonctionne pas; mon site est rendu totalement inaccessible une fois le fichier htaccess mis dans le répertoire. Cela génère une erreur 500 « server error ». Et c’est là que je bloque, car pour ce test je n’avais mis qu’une seule ligne de redirection.

    Y a-t-il d’autres prérogatives techniques à respecter pour le fonctionnement du fichier htaccess?

    Merci par avance pour votre aide et vos conseils.

    P.S.: hébergement ovh

    Ecrit le 8 janvier 2011 à 17h31 par patrick

  12. Salut,

    Je travaille sur la redirection d’URL.
    J’ai plus de 2000 URL a rediriger ce que je souhaiterai savoir et comment faire une redirection super rapide.
    Toutes mes anciennes URL sont sur mon document excel. Comment en quelques minutes faire la redirection de toutes ces URL?
    Merci d’avance :)

    Ecrit le 19 décembre 2011 à 11h37 par Laure

  13. Comment rediriger un page vers une autre page celles ci n’ayant pas une extension .html ou .php:
    http://exemple.fr/page1 VERS http://exemple.fr/newrepertoire/page1
    j’ai essayé avec
    Redirect permanent /page1 http://exemple.fr/newrepertoire/page1?
    mais l’URL réecrite comporte le point d’interrogation à la fin.
    Si je l’enlève le ? dans la ligne du Htaccess l’url réecrite devient:
    http://exemple.fr/newrepertoire/page1?params=page1
    quelqu’un a t-il une solution?
    Merci d’avance

    Ecrit le 10 janvier 2012 à 17h26 par totomat

  14. Ceci devrait faire l’affaire :
    RewriteEngine on
    RewriteRule ^page1$ http://exemple.fr/newrepertoire/page1? [L,R=301]

    Ecrit le 11 janvier 2012 à 21h45 par Jean-Luc

  15. Bonjour,
    Je suis propriétaire des domaines www.nutricador.be .com .fr.eu …
    Pour l’instant, je suis bien référencé (avec le .be) en Belgique et beaucoup moins bien en France.
    Si je fais une redirection 301 de tous les domaines vers le .com :
    – vais-je conserver ma position sur la Belgique ?
    – vais-je améliorer ma position sur la Fance ?

    Merci d’avance pour votre réponse

    Ecrit le 25 janvier 2012 à 16h16 par Michel

  16. A votre place, j’utiliserais le .com (avec redirection 301 du .be et du .fr sur le .com) et je me concentrerais sur l’obtention de backlinks (liens) de qualité venant de France. On peut espérer que le passage sur le .com ne défavorise pas trop la position en Belgique (mais ce n’est jamais garanti).

    Ecrit le 26 janvier 2012 à 15h50 par Jean-Luc

  17. A chaque fois que je crée un fichier .htaccess pour un site, j’ai un doute. Alors je reviens toujours sur cette page (il faut que je pense à la mettre en favoris, depuis le temps).

    Je trouve l’information qu’il me faut, directement. C’est vraiment un bon outils, merci !

    Ecrit le 26 septembre 2012 à 14h24 par Arthur

Ajout de commentaire