Transfert d’un nom de domaine via .htaccess, PHP, HTML et JavaScript

Les redirections de noms de domaines jouent un rôle décisif pour les sites Internet d’envergure. La possibilité de transférer le trafic d’une page Web vers une autre aide les administrateurs de sites à contrôler le flux de visiteurs et à restructurer un site Internet. Par ailleurs, il est possible via ce transfert de rendre des contenus identiques accessibles sous différents noms de domaines, sans que ceux-ci ne soient considérés comme des duplicate content (des contenus en double en anglais).

Le transfert de noms de domaines est également un outil efficace en matière de gestion d’indexation dans le cadre de l’optimisation sur les moteurs de recherche. Ainsi, plusieurs options se présentent à vous en ce qui concerne la redirection d’un nom de domaine ou de sous-domaine vers un dossier du site Internet en question ou vers une adresse extérieure. Les transferts se réalisent en général via .htaccess, PHP-Script, HTML-Meta-Tag et JavaScript.

Semez les graines du succès !

MyWebsite est la solution idéale pour votre présence en ligne professionnelle. Á partir d'1 € HT/mois et résiliable à tout moment !

Certificat SSL
Domaine gratuit
Assistance 24/7

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 les internautes à la nouvelle adresse.

Dans le cas contraire, les internautes 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’internautes 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 page du site priorisée.

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 internautes 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 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.
  • 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 d’entrer le code manuellement pour chaque redirection afin de prévenir toute erreur d’indexation, voire les piratages 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.

Conseil SEO

L'usage de redirections assure le transfert adéquat de liens. Ceci aide à maintenir le positionnement web du site ainsi que d'éviter une baisse de trafic.

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.

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/

La ligne de code démarre avec le code de statut HTTP « Redirect 301 ». 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. A 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. Voici le code à utiliser :

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

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 [L,R=301]

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 signifie le code de statut HTTP 301.

Lors de la configuration d’une redirection de 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. Etant 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;
?>

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

Redirection client

Si, pour des raisons techniques, une redirection serveur ne peut se faire, les administrateurs de sites Internet ont la possibilité d’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 internautes 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 (serarch engine results page). Contrairement aux redirections serveurs, qui restent invisibles pour les internautes, les redirections clients ralentissent les chargements de pages.

Conseil SEO

Évitez les chaines de redirections, celles-ci mènent à une baisse de trafic!

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 internautes qu’une redirection est mise en place, il convient de l’indiquer dans un document HTML par une phrase courte comme par exemple « 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/">

La balise meta http-equiv="refresh" permet au client de réaliser une redirection de noms de domaine. Le processus est défini 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 que dans un seul cas, é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 causer des problèmes pour les robots d’indexation ainsi que pour les internautes 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>

La ligne de code 03 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’internaute au nom de domaine cible qui se trouve entre parenthèse.