Forums | Contact | Plan du site Menu Accueil » Création de site

La redirection d'URL

  Dans certains cas particuliers, on peut-être amené à créer une redirection. Lorsqu'un fichier a été renommé ou déplacé, lors d'un changement du nom de domaine... dès qu'une page n'est plus accessible à son adresse d'origine, il faut que l'ancienne URL redirige les visiteurs sur la nouvelle page. Au delà de l'intérêt de rediriger les internautes (un internaute non redirigé est un visiteur ou client potentiellement perdu), la redirection a également des incidences sur le référencement (les moteurs de recherche peuvent retrouver la nouvelle page avec les liens internes du site, mais l'intérêt est surtout au niveau des backlinks).

  Il existe plusieurs techniques de redirection : redirection par fichier htaccess (URL Rewriting), redirection par un script côté serveur (PHP, ASP...), redirection par un script côté client (Javascript), redirection par balise Meta Refresh (html)... mais il est préférable d'utiliser l'une des deux premières car elles fonctionneront pour tous vos visiteurs, et les moteurs de recherche ! A titre d'exemple, nous retiendrons ces méthodes :

  • Pour rediriger plusieurs pages spécifiques, on utilisera RewriteRule dans un fichier .htaccess,
  • Pour rediriger la totalité d'un répertoire, on utilisera RedirectPermanent dans un fichier .htaccess,
  • Pour rediriger une seule page (renommée, changée de répertoire), utiliser un script côté serveur.
  • Si vous ne tenez pas à ce que les moteurs suivent cette redirection, utiliser Javascript ou html.


Redirection par htaccess

 

  La redirection par fichier .htaccess fonctionne très bien avec tous les moteurs de recherche. Pour créer une redirection permanente (la nouvelle adresse est définitive), vous pouvez utiliser RewriteRule ou RedirectPermanent tel qu'indiqué ci-dessous (à insérer dans un fichier .htaccess dans le répertoire concerné).

Il est possible de faire une redirection de pages ayant un certain format. Dans cet exemple, des pages contenant des articles (nommées article-1.php, article-2.php...) seront désormais stockées sous les URL archives-n.php. ([0-9]*) représente ici un chiffre quelconque, qui est reporté dans la nouvelle URL par $1.

RewriteRule ^article-([0-9]*).php archives-$1.php [R=301]

On peut également rediriger la totalité d'un répertoire vers un autre répertoire (ou un autre site). Dans cet exemple, un internaute qui visitera une page du répertoire creation-de-sites (d'un domaine quelconque) sera redirigé sur la même page mais dans le site http://www.conseil-creation.com (dans ce cas, il faut bien sûr conserver la même arborescence de fichiers ! ).

RedirectPermanent /creation-de-sites http://www.conseil-creation.com/

A noter : la redirection htaccess peut donc agir sur certaines pages seulement ou sur toutes les pages du répertoire dans lequel il est placé... ainsi que dans tous les sous-répertoires. Pour agir sur toutes les pages du site (changement de nom de domaine par exemple), il suffit donc de placer un seul .htaccess à la racine du site.


Redirection dans un script côté serveur

 

  La redirection est définie par une fonction chargée de renvoyer une en-tête HTTP. Cette méthode ne pose pas de problèmes pour le référencement.

PHP : utilisation de la fonction header() :

<?PHP
header("Status: 301 Moved Permanently");
header("Location: http://www.conseil-creation.com/nouveau.php");
exit();
?> 

ASP : utilisation de la fonction addheader :

<%
response.status = "301 moved permanently"
response.addheader "location", "http://www.conseil-creation.com/nouveau.php"
response.end
%>


Redirection par un script côté client

 

  La redirection est définie par une fonction qui modifie l'URL de la page à afficher, sans modifier l'entete HTTP. A proscrire donc pour le référencement, puisque les moteurs de recherche ignorent les langages côté client ! Exemple avec une fonction Javascript :

<script language="javascript"> <!--//
  window.location.replace("http://www.conseil-creation.com/nouveau.php");
//--> </script>


Redirection par balise META (Refresh)

 

  La redirection est définie par la balise META Refresh. Celle-ci donne l'ordre au navigateur de rediriger l'internaute vers une URL spécifiée. Cette solution, bien qu'elle permette l'affichage d'un message intermédiaire au visiteur (puisque l'on peut peut choisir le délai de la redirection), n'est pas idéale d'un point de vue référencement. Préférez donc l'une des méthodes évoquées ci-dessus.

Exemple de redirection vers la page "nouveau.php" au bout de 5 secondes. insérez ce code avec les autres balises meta (entre les balises <head> et </head> de votre page).

<html>
 <head>
   <title>Redirection par Meta Refresh</title>
   <meta http-equiv="Refresh" content="5;URL=nouveau.php">
 </head>
 <body bgcolor="#FFFFFF" text="#000000">
 </body>
</html>

 


Une question ? Venez échanger sur le forum...
Nom :
Sujet :
 

© Cédric MICHEL - conseil & création ( 2003 / 2019 )