Retour à la liste

Redirection 301

Créé : 27.12.2013, 11:39:35  -  Modifié : 22.02.2018, 03:42:46

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:

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

  • /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

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).

 Tag(s) php
 Source(s) http://www.annuaire-info.com/redirection-301/

Rendu :0.1191 | Mémoire :2.89MB

Accueil | Informations | Top