Il arrive que pour diverses raisons l’on doive déménager un site d’un hébergeur à un autre. Si le nom de domaine demeure le même, pas de problème : tant pour les visiteurs que les moteurs de recherche, il n’y aura pas de changement perceptible.
Par contre, si le nom de domaine change (même sur le même serveur ou le même hébergeur) il faudra alors procéder à une redirection afin que l’adresse (URL) d’origine redirige les visiteurs et les moteurs de recherche vers la nouvelle adresse ou le nouveau nom de domaine. Dans la terminologie du Web, c’est ce qu’on désigne sous le nom de redirection permanente de type HTTP 301.
Redirection par le serveur
Si les deux sites sont des copies conformes ou « miroirs » l’un de l’autre, une simple directive dans le fichier .htaccess à la racine du site d’origine devrait convenir avec pour avantages le report du PageRank de Google d’un site à l’autre ET de redirection valide pour toutes les adresses du site d’origine vers le site de redirection.
Pour celà, il faut créer à la racine du site d’origine un fichier de configuration Apache ayant très exactement pour nom .htaccess [1] et y incrire l’une ou l’autre des lignes suivantes (mais une seule).
Redirect permanent / http://www.mon-nouveau-site.org/
Redirect 301 / http://www.mon-nouveau-site.org/
RedirectPermanent / http://www.mon-nouveau-site.org/
Si la racine du site d’origine est située dans un répertoire (exemple : http://mon_site_free.fr/spip/), il faudrait alors inscrire dans .htaccess :
Redirect 301 /spip/ http://www.mon-nouveau-site.org/
Pour plus d’explications, voir la documentation d’Apache : Redirect Directive
Cette même directive peut aussi servir à rediriger de façon permanente, sur un même site, les requêtes d’un dossier vers un autre lors d’un changement de nom d’un dossier par exemple. Très pratique notamment pour s’éviter de modifier tous les liens directement dans les pages du site.
Redirection dans un script PHP ou ASP
Chez certains hébergeurs, il n’est parfois pas possible d’utiliser un fichier .htaccess . Dans ce cas, si un système de scripts côté serveur est disponible (PHP ou ASP), on peut atteindre le même résultat.
La redirection est alors définie par une fonction chargée de renvoyer un entête HTTP. Il faut bien sûr bien choisir le code de retour HTTP.
PHP
Exemple : utilisation de la fonction header() en PHP :
ASP
Exemple : utilisation de la fonction addheader en ASP :
Redirection HTML
Si les deux premières méthodes ne sont pas disponibles, il existe aussi une solution de dernier recours en HTML qui ne constitue pas à proprement parler une redirection, mais qui a sensiblement le même effet.
Elle consiste à fabriquer un fichier HTML sur le site d’origine qui encadre (à l’aide des balises FRAME et FRAMESET) le site de redirection.
Quoique que cette méthode ne vous pénalise pas en terme d’indexation auprès de moteurs de recherche, elle devrait être utilisée en dernier recours, car elle a pour effet de cacher aux visiteurs la véritable d’une page.
Il existe aussi d’autres méthodes HTML de redirection soit par balises META ou encore par Javascipt. Mais ces méthodes sont en général à proscrire, face aux abus de sites mal intentionnés, les moteurs de recherche imposant en général de sévères pénalités à de telles redirections.
Lire en complément :
