(modifié le 6 avril 2014 à 3:52)

Il est toujours désagréable de tomber sur une URL redirigée vers la page d'accueil d'un second site. Encore plus lorsqu'il s'agit d'un changement de nom de domaine. Ce billet fait suite à plusieurs demandes d'explication de certains lecteurs du blog, voici une solution simple à mettre en œuvre avec un .htaccess.

Principe

La meilleure façon de rediriger un visiteur d'une ancienne adresse vers une nouvelle est l'utilisation des en-têtes (headers), avec un serveur Apache (le plus répandu).

Plutôt que de rediriger toutes les pages de l'ancienne URL vers une seule et unique adresse (la nouvelle URL), il est plus logique de rediriger le visiteur vers la page à laquelle il s'attendait mais sur le nouveau domaine. Vous ne comprenez rien ? Voyons un exemple qui sera j'espère plus parlant.

Au lieu de faire ça :

http://www.anciensite.com/ma-page.php => http://www.site.com/

Nous allons faire :

http://www.anciensite.com/ma-page.php => http://www.site.com/ma-page.php

L'intérêt est double : le visiteur n'est pas perdu et comprend que le site a changé de nom ou d'adresse (redirection transparente), aucune perte de votre référencement (SEO) puisque les moteurs mettront à jour leurs index avec le nouveau domaine (redirection permanente 301), bien que cela peut prendre plusieurs semaines voir mois.

C'est cette méthode que j'ai utilisée lorsque Xhark.fr.nf devenait Blogmotion.fr.

En pratique

C'est une technique extrêmement simple à mettre en place, à tel point que cela risque de vous décevoir.

Créer un fichier .htaccess à la racine de votre ancien domaine, au même niveau que le fichier wp-config.php si vous utilisez WordPress et ajouter la ligne suivante :

RedirectPermanent / http://site.com/

Le premier "/" correspond au chemin absolu de l'ancien contenu. Admettons votre ancien domaine http://www.anciensite.com/blog/ et votre nouveau domaine sans  le chemin "/blog", voici comment il faut procéder :

RedirectPermanent /blog http://site.com/

Conclusion

Les possibilités sont multiples et infinies. Vous pouvez même utiliser cette technique sur un même domaine qui change de chemin (attention à ne pas boucler !).

Vous pouvez vérifier le fonctionnement de la résolution avec un lecteur d'en-têtes qui devrait vous retourner quelque chose comme :

HTTP/1.1 301 Moved Permanently
Date: Sun, 04 Apr 2010 21:02:41 GMT
Server: Apache/1.x.x
Location: https://blogmotion.fr/test
Vary: Accept-Encoding
Content-Length: 340
Connection: close
Content-Type: text/html; charset=iso-8859-1

Pensez à renommer le fichier .htaccess sur le serveur FTP s'il contient des caractères avant le ".". C'est le cas sous Windows si vous utilisez le bloc-notes traditionnel qui refuse qu'aucun nom ne soit présent devant l'extension (sauf si vous entourez le nom de guillemets ".htaccess" ou alors utilisez Notepad++).

Note : vous pouvez tout à fait supprimer toutes les données de votre ancien site si vous le souhaitez, le fichier .htaccess se chargeant de tout rediriger vers le nouveau (même si le contenu est absent).

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter