Redirection d’un nom de domaine : comment ça marche ?

Il existe différentes options pour rediriger un domaine ou un sous-domaine vers n’importe quel autre domaine, que ce soit vers sa propre présence sur le Web ou vers une adresse externe. Les transferts se réalisent en général via .htaccess, PHP-Script, HTML-Meta-Tag et JavaScript.

Comment fonctionne une redirection de nom de domaine ?

En principe, les redirections ont pour but d’annoncer au serveur que le contenu d’un site Internet a été transféré d’une URL à une autre. Ce processus est essentiel, surtout si l’adresse Web de base est la cible d’un lien entrant, si elle est enregistrée en tant que favori sur un navigateur ou si elle est bien référencée par les moteurs de recherche. Dans le dernier cas, la redirection indique au robot d’indexation ou au navigateur que le contenu recherché a été déplacé et il renvoie à la nouvelle adresse. Dans le cas contraire, les utilisateurs reçoivent à la place de la page Web voulue une page d’erreur 404, ce qui doit à tout prix être évité, surtout pour des sites commerciaux.

En ce qui concerne les boutiques en ligne qui disposent d’une page individuelle pour chaque produit : si un article n’est plus disponible, les clients potentiels sont tout simplement redirigés vers une page Web présentant des produits semblables. Ainsi, le flux d’utilisateurs peut être mieux maîtrisé et le taux de rebond est minimisé.

Une redirection de nom de domaine permet, par ailleurs, de rendre un contenu accessible sur plusieurs adresses Web. Toutes les adresses alternatives sont tout simplement transférées vers une le domaine prioritaire du site Web. Une telle redirection de domaine tout compris ne dépend donc pas de l’URL ou du chemin saisi par les utilisateurs.

Votre propre domaine .fr !

Démarquez-vous avec un nom de domaine unique et une adresse email personnalisée !

Simple
Sécurisé
Assistance 24/7

Méthodes de transferts de nom de domaine

En principe, on différencie les redirections serveurs et les redirections clients. Pour les premières, un code de statut HTTP est communiqué à l’agent utilisateur (le navigateur ou le robot d’indexation) tandis que la deuxième se déroule sans donner de retour. Une redirection de nom de domaine via un client n’est donc pas prise en charge par un agent utilisateur. En effet, elle implique que les utilisateurs restent sur la page chargée et qu’ils ne soient pas redirigés vers la nouvelle cible. Une redirection serveur est donc à privilégier. La dernière solution n’est en effet utile que si un transfert par serveur ne peut pas être réalisé en raison de problèmes techniques.

Une autre forme de transfert est la redirection sans changement d’URL, souvent appelée « redirection transparente » ou « redirection invisible » : avec cette méthode, l’URL affichée pour l’utilisateur n’est pas modifiée, bien que le client ait été redirigé vers un autre domaine et que le contenu d’une autre page Web soit affiché. Des problèmes d’indexation et d’affichage de l’URL dans le navigateur peuvent cependant survenir, c’est pourquoi la redirection invisible ne peut pas être recommander sans réserve.

Conseil

Vous souhaitez mettre en place la redirection d’un nom domaine ? Apprenez étape par étape comment procéder dans le centre d’aide de IONOS.

La redirection serveur

Dans la plupart des cas, une redirection serveur s’effectue via un fichier de configuration .htaccess ou via un script PHP. L’avantage de ces deux méthodes est qu’il est possible de définir de manière individuelle quel code de statut HTTP doit être communiqué à l’agent utilisateur. Cela permet aux administrateurs de site Internet de signaler une redirection de nom de domaine comme étant permanente ou temporaire. Il convient d’utiliser les codes de statut HTTP 301 et 302 :

  • 301 – redirection permanente : la page demandée par l’agent utilisateur est disponible de manière permanente sous une URL mentionnée. L’ancienne URL est de fait invalide et une redirection 301 est donc ici nécessaire.
  • 302 – redirection temporaire : la page demandée par l’agent utilisateur est disponible sous une autre adresse de manière provisoire. Contrairement au code 301, l’URL de base est toujours valide.

Si un code de statut HTTP n’est pas défini explicitement, un serveur Web peut alors transmettre un code 302 via une redirection serveur. C’est une méthode à éviter. Il convient donc plutôt d’entrer le code manuellement pour chaque redirection afin de prévenir toute erreur d’indexation, voire même un détournement d’URL. Contrairement aux redirections 301, le code de statut 302 communique au navigateur que l’URL d’origine doit rester indexée. En ce qui concerne les redirections permanentes, une adresse de transfert est en concurrence avec son adresse cible dans l’index des moteurs de recherche.

Redirection par .htaccess

En ce qui concerne .htaccess, il s’agit d’un fichier de configuration pour le serveur Web Apache avec lequel la configuration centrale est modifiée au niveau du répertoire. Ce fichier permet aux administrateurs de sites Web de procéder à des réglages pour un nom de domaine et les sous-répertoires qui en découlent. L’un des rôles du fichier .htaccess est de gérer la redirection de noms de domaine au niveau du serveur pour les adresses spécifiques liées à un projet web, en les redirigeant vers d’autres URL.

Il est possible de mettre en place des redirections de domaine à l’aide d’un code dans le fichier .htaccess. Si un fichier .htaccess est indiqué avec le code qui suit dans le répertoire principal, la requête au nom de domaine d’origine est transférée vers l’adresse www.exemple.fr.

Redirect 301 / http://www.exemple.fr/
apache

La ligne de code démarre avec le code de statut HTTP Redirect 301 et définit ainsi le code de statut HTTP à transmettre par le serveur. Par la suite, le chemin d’accès vers les contenus redirigés apparaît. Il s’agit de tout ce qui se trouve après la barre oblique. À la fin se trouve l’adresse d’URL cible sur laquelle l’agent utilisateur doit être redirigé : www.exemple.fr.

Avec cette méthode, il est possible de rediriger des fichiers uniques. Le code suivant montre une redirection .htaccess d’un domaine à un autre :

Redirect 301 /répertoire/document-exemple.html http://www.exemple.fr/exemple.html
apache

Après un code de statut HTTP 301, il convient de définir le chemin d’accès du répertoire du fichier (/répertoire/document-exemple.html) qui est redirigé de manière permanente et de l’accompagner de l’adresse cible (http://www.exemple.fr/exemple.html).

Sur un serveur Apache comportant un module mod_rewrite, la redirection permanente d’une page d’exemple aurait l’allure suivante :

RewriteEngine On
RewriteRule ^répertoire/document-exemple.html$ http://www.exemple.fr/exemple.html [L,R=301]
apache

Sur la ligne de code 01, le module mod_rewrite du serveur Web Apache est activé avec la commande RewriteEngine On. La ligne suivante commence par RewriteRule suivi du chemin d’accès du fichier de redirection, puis de l’adresse cible. L’accent circonflexe (^) et le signe dollar ($) marquent le début et la fin du chemin d’accès tandis que L caractérise le dernier module mod_rewrite pour les requêtes appropriées. R=301 fait référence au code de statut HTTP 301.

Conseil

Dans un autre article du Digital Guide, nous avons rassemblé pour vous quelques astuces .htaccess.

Découvrez également notre article dédié au module Rewrite Engine pour en savoir plus sur le sujet.

Lors de la configuration d’une redirection d’un nom de domaine via .htaccess, il convient de considérer le fait que les données qui comportent des erreurs dans le fichier de configuration ont un impact négatif sur le fonctionnement du site Internet, sans que cela se voie au premier abord. Étant donné que les modifications sont effectives directement après l’enregistrement du fichier .htaccess, il faut que les configurations en question soient de toute façon vérifiées.

Redirection par PHP

Il est impossible de réaliser une redirection de nom de domaine en utilisant uniquement une configuration .htaccess. Une commande avec un script PHP est également nécessaire (par exemple dans l’index.php). Les codes suivants affichent une redirection permanente vers une URL cible fictive www.exemple.fr.

<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.exemple.fr");
exit;
?>
php

Lors d’une redirection via un script PHP, le code de statut HTTP est défini via la fonction header (« en-tête » en français) dans la ligne de code 02. Dans cet exemple, une redirection 301 permanente doit être effective. Étant donné que les redirections serveurs sont généralement temporaires, il convient de la rendre explicitement permanente en utilisant un code 301. L’adresse cible de la redirection du nom du domaine est indiquée sur la ligne 03 après header. Dans l’exemple, la redirection se fait vers l’adresse http://www.exemple.fr. La fonction exit de la ligne de code 04 met fin au script et empêche que les codes qui suivent ne soient effectifs. Pour qu’une redirection via un script PHP fonctionne, il faut que le bloc de codes apparaisse au début avant que le serveur ne livre des contenus HTML éventuels à la page Web de redirection.

La redirection client

Si, pour des raisons techniques, une redirection serveur ne peut se faire, les administrateurs de sites Internet peuvent également utiliser un client. Pour cela, il faut utiliser la balise méta HTML refresh ainsi que JavaScrit. L’inconvénient de cette méthode est que le serveur ne livre pas de code de statut HTML au navigateur ou au robot d’indexation. Par conséquent, le transfert n’est pas explicitement exprimé. Par ailleurs, les redirections client ne sont pas prises en charge par tous les agents utilisateurs, car il se peut que certains utilisateurs ne soient pas redirigés.

L’autre inconvénient de cette méthode est son effet sur le référencement sur les moteurs de recherche. En effet, une redirection client via le code de statut http 301 n’exclut pas de manière explicite une page Web de l’index des moteurs de recherche. Ainsi, il est possible que le nom de domaine redirigé soit en concurrence avec le nom de domaine cible dans les SERPs (Search Engine Results Page). Contrairement aux redirections serveurs, qui restent invisibles pour les utilisateurs (hormis le changement d’adresse dans la barre du navigateur), les redirections clients ralentissent les chargements de pages.

Redirection via HTML Meta Refresh

On réalise une redirection via HTML en utilisant des balises méta avec l’attribut http-equiv. Par ailleurs, il convient de créer un fichier HTML avec la balise qui convient dans l’en-tête pour la redirection. Afin de faire savoir aux utilisateurs qu’une redirection est mise en place, il convient de l’indiquer dans un document HTML par une phrase explicative comme « vous allez bientôt être redirigé ». Voici un exemple de redirection de noms de domaine via HTML Meta Refresh :

<meta http-equiv="refresh" content="10; url=http://www.exemple.fr/">
html

La balise meta http-equiv=“refresh” permet au client de réaliser que le domaine est redirigé. Le processus et la durée de la redirection sont définis dans l’attribut content. Dans l’exemple, une redirection est effective vers le domaine cible www.exemple.fr après dix secondes.

Redirection par JavaScript

JavaScript permet de réaliser une redirection client. Même si celle-ci est similaire à celle avec la balise meta refresh, il convient de n’utiliser JavaScript qu’en dernier recours, étant donné qu’il est possible que le langage de script ne soit pas pris en charge par tous les navigateurs pour des raisons de sécurité. Les redirections via JavaScript peuvent notamment causer des problèmes pour les robots d’indexation ainsi que pour les utilisateurs qui utilisent le module NoScript. Voici un exemple classique de redirection de noms de domaine avec JavaScript :

<script>
window.location.replace('http://www.exemple.fr');
</script>
html

La ligne de code 02 est la plus importante de toutes. Dans l’exemple, l’objet window.location est utilisé afin de renvoyer à l’adresse de site Internet actuel. La commande replace indique au navigateur de transférer l’utilisateur au nom de domaine cible qui se trouve entre parenthèses.