Niveau: Intermédiaire
Visites de la page: 1185
Commentaire: [0]
|
Date d'ajout: [21-10-2007]
Auteur: Webmaster
|
Sommaire :
Introduction :
Les redirections sont utlisées dans plusieurs situations, que nous allons vous présenter dans cet article, telles que pour des changements d'adresse du site, des changements d'emplacement de pages, des redirections vers des liens après avoir effectué une certaine action, pour renommer des fichiers... Il en existe plusieurs types : redirection par HTaccess, redirection HTTP, redirection par balise META Refresh et redirection JavaScript.
Afin que ces redirections soient bien prises en compte (par les robots de moteur de recherche par exemple, lorsqu'il est question de référencement), il faut que ces dernières soient bien faites et que vous ayez donc tous les éléments en main pour faire une bonne redirection.
Redirection par HTaccess :
Lorsque vous décidez de faire une restructuration de votre site, il vous est parfois amené à déplacer des pages ou répertoires de votre site. Et ceci s'accompagne de certaines conséquences comme le fait que la page n'est plus accessible par les visiteurs l'ayant mis dans leurs favoris, ou elle n'est plus correctement référencée par les moteurs de recherche.
Ainsi, il faut que la redirection de l'ancienne URL vers la nouvelle soit correctement interprétée par les robots des moteurs de recherche, c'est à dire en utilisant un entête HTTP qui indique que la page a définitivement changé d'emplacement (code 301, déplacement permanent). Le cas contraire, l'ancienne URL renverra une erreur 404.
Un première solution est la redirection par HTaccess. En dehors de permettre la protection des pages, les fichiers .htaccess sont utiles pour effectuer des redirections lorsque l'on utilise les directives RedirectPermanent ou RewriteRule (avec le code R=301).
Voici quelques exemples pour illustrer ces propos (code à placer dans un fichier .htaccess à la racine du site) :
> Changement d'adresse (ou de nom) d'une page:
Code:
|
RedirectPermanent ancien_nom.php http://www.domaine.tld/nouveau_nom.html
|
Ici, le fichier ancien_nom.php a été renommé en nouveau_nom.html. Cette directive permet d'en informer le navigateur en lui envoyant l'entête HTTP 301 (déplacement permanent). Très utile pour les robots qui modifieront automatiquement leur index.
> Changement d'adresse d'un répertoire:
Code:
|
RedirectPermanent /ancien_rep http://www.domaine.tld/nouveau_rep/
|
NB: Redirige l'adresse de l'ancien répertoire vers la nouvelle adresse (en spécifiant l'adresse URL complète)
> Changement de nom de domaine:
Code:
|
RedirectPermanent / http://www.nouveau-domaine.tld/
|
NB: Redirige la racine de l'ancien site vers le nouveau domaine
> Utilisation de RewriteRule pour le changement d'adresse d'un fichier:
Code:
|
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^ancien_nom\.php$ http://www.domaine.tld/nouveau_nom.html [R=301,L]
|
- Options +FollowSymlinks : instruction facultative indiquant au serveur qu'il doit suivre les liens symboliques
- RewriteEngine on : instruction activant le module de réécriture d'URL
- [R=301,L] : drapeau signifiant respectivement que l'on effectue une redirection 301 et que le module de réécriture doit s'arrêter après cette ligne ("Last").
Redirection HTTP :
La redirection HTTP se charge de renvoyer un entête HTTP dans lequel est spécifié le statut de la page. En PHP, la fonction header() permet de réaliser cela. Par exemple :
> Changement d'adresse d'une page:
A placer dans le fichier à l'ancienne URL :
Code:
|
<?php
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.domaine.tld/nompage.html");
exit();
?>
|
- header("Status: ..."); : on envoie le statut de la page ('301') pour spécifier que c'est, ici, un déplacement permanent
- header("Location: ..."); : on spécifie la nouvelle adresse vers laquelle nous serons redirigés
- exit; : on arrête le script à ce niveau, car aucun traitement n'est à effectuer dans la suite.
> Redirection à la suite du traitement d'une page:
Prenons l'exemple d'un formulaire présent sur une Page A et qui envoie les données sur une page de traitement B. Vous voulez qu'à la fin du traitement, l'utilisateur soit renvoyé sur la Page A. Dans ce cas, il faut simplement utiliser (à la fin du script de traitement de la Page B) les lignes de code suivantes :
Code:
|
<?php
header("Location: http://www.domaine.tld/nompageA.php");
exit();
?>
|
Attention, aucun contenu (lignes HTML ou affichage PHP) ne doit être envoyé avant l'appel de la fonction header() sous peine d'être témoin de l'erreur souvent rencontrée Cannot modify header information - headers already sent by ... Se rabattre sur la redirection JavaScript ou META est de très loin la meilleure solution !
Redirection par balise META Refresh :
La redirection se fait via la balise META http-equiv="Refresh" qui redirige l'utilisateur vers une URL spécifiée, et au bout d'un certain temps indiqué en seconde (dans l'exemple, au bout de 11 secondes).
Code:
|
<meta http-equiv="Refresh" content="11;URL=nouvellepage.html">
|
NB: Ne pas utiliser pour le référencement !
Redirection JavaScript :
La redirection est réalisée par une fonction JavaScript qui ne modifie pas l'entête HTTP.
Code:
|
<script language="javascript" type="text/javascript">
<!--
window.location.replace("http://www.domaine.tld/nouvellepage.html");
-->
</script>
|
NB: Ne pas utiliser pour le référencement car le JavaScript est ignoré par les robots !
|
|
|