Auteur Sujet: Redirection 301  (Lu 2635 fois)

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Redirection 301
« le: 29 décembre 2009 à 18:15:01 »
Pourquoi faire une redirection 301 ? Hein ? D'abord ?!
Vous devez faire une redirection de type 301 lorsque vous modifiez l'url d'une page de votre site et que vous souhaitiez que l'ami Google ne perde pas cette page.
Par exemple, vous aviez une jolie page d'index qui se nommait "accueil.php" et puis, en changeant d'hébergeur, vous ne pouvez pas choisir autre chose que "index.php". Dans ce cas, laissez la page "accueil.php" et faites une redirection 301 vers la nouvelle page.
Pourquoi 301 plutôt que 302 ?

301 : Permanent Redirect (redirection définitive)
302 : Temporary Redirect (redirection temporaire)

Donc, si votre page est définitivement à une nouvelle adresse, c'est 301 qu'il faut utiliser.
En Php, il suffit de placer ce code en haut de la page :
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.mon-domaine.com/index.php");
exit();

Alors, évidement, pour des raisons plus ou moins évidentes de "duplicate content", il est préférable de rediriger vers "/". Et du coup, le code se complique un peu :
if($_SERVER['REQUEST_URI'] == "/index.php"){
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://".$_SERVER['HTTP_HOST']."/");
exit;
die("Redirection");
}

Vous suivez ?
Vous pouvez aussi le faire avec le meta Refresh dans le cas où votre hébergement ne propose pas de Php (utile si vous changez d'hébergement justement) :
<meta http-equiv="refresh" content="2;url=http://www.mon-domaine.com/" />Attention, si vous indiquez un delay (content) trop important, vous risquez de passer en 302.
Attention également, en général, Google  considère cette balise comme étant sur une page "satellite" et a tendance à blacklister la page...

Votre site est en ASP, qu'à cela ne tienne :
<%
response.status = "301 moved permanently"
response.addheader "location", "http://www.mon-domaine.com/"
response.end
%>

Reste encore la redirection via le .htaccess qui est la meilleure tout de même :
RewriteRule ^ancienne-page.php nouvelle-page.php [R=301]Ou encore :
RedirectPermanent /ancienne-page.php /nouvelle-page.php
Voilà de quoi faire votre référencement sans trop de problème si vous souhaitez changer le nom de vos pages.
Ça arrive lorsque l'on se rend compte, par exemple, que l'undescore "_" n'est pas un séparateur pour les termes d'une url. Il faut utiliser le tiret "-". Par exemple, "jeux-en-ligne.php" est mieux que "jeux_en_ligne.php".

Il est bon également de ne pas faire du duplicate content entre le site placé sur "www" et sans les "www". Il faut donc rediriger les utilisateurs vers la bonne url.
En utilisant le .htaccess :
RewriteCond %{HTTP_HOST} ^mon-domaine.com$
RewriteRule ^(.*)   http://www.mon-domaine.com/$1  [QSA,L,R=301]
Vous pouvez aussi le spécifier dans les "outils pour webmasters" de Google, mais ça ne concernera que Google.