Les redirections en PHP - Utilisation de Header Location

Tutoriaux > PHP / MySQL > Les redirections en PHP - Utilisation de Header Location

Les redirections en PHP - Utilisation de Header Location
Rediriger une page vers une autre peut se faire de plusieurs manières. Voici les différentes possibilités pour rediriger une page en PHP, selon le contexte : temporairement ou définitivement.

Quel type de redirection ?

Il existe plusieurs types de redirections sur l'internet : Redirection temporaire (autrement appelée 302) ou définitive (301). Et dans ces différents types, il existe à chaque fois plusieurs possibilités pour effectuer ces redirections (Directement via un fichier .htaccess, en HTML ou encore en PHP comme nous allons voir ici).

Une redirection lambda en PHP, sans contrôle spécifique, se fait de cette manière. A noter que c'est une redirection temporaire :

<?php
//On peut utiliser un chemin relatif comme ci-dessous, ou un chemin absolu type : http://www.aidoweb.com
header ('location : nouvelle_page.php');
?>


Choqué Une simple petite chose à noter : Il ne faut absolument rien afficher sur la page avant la redirection.

En effet, on utilise la fonction "header()", qui envoie, comme son nom l'indique, un en-tête. A partir du moment où un affichage a été fait, les en-têtes ne sont plus pris en compte. Donc ne pas faire de echo(), de print(), ou autre avant cette redirection.

Redirection 301 : Redirection définitive

Si l'une de vos page a changé d'adresse de manière définitive, il est possible de l'indiquer directement dans la page en question, en détournant le visiteur et les moteurs de recherche vers la nouvelle adresse. L'utilisation d'une redirection 301 indiquera aux moteurs de recherche de préférer l'utilisation de la nouvelle adresse et d'oublier l'ancienne.

La syntaxe est presque la même que celle citée plus haut :

<?php 
header('Status: 301 Moved Permanently', false, 301);
header('Location: nouvelle_page.php');
exit();
?>


Le statut 301 permet de dire que la page a déménagé de manière définitive. Il est très important pour votre référencement de bien appliquer des redirections 301 pour signifier aux moteurs de recherche de référencer la nouvelle page en lieu et place de l'ancienne ! Cool

Redirection 302 : Redirection temporaire

Si vous êtes en train de travailler sur une page que vous souhaitez fermer au public, vous pouvez rediriger le trafic de cette page de manière temporaire vers une autre page (d'excuses, ou simplement l'accueil de votre site). On utilise alors une redirection 302, c'est à dire une redirection temporaire :

<?php
header("Status : 302 Moved Temporary");
header("Location: nouvelle_page.php");
exit();
?>


Notez bien encore une fois que les moteurs de recherche ne retiendront pas l'adresse de la nouvelle page et continueront de tenter d'indexer l'ancienne ! C'est donc temporaire, et il faut que la page revienne à son état normal au bout d'un certain tempsClin d'oeil

Comment tester si mes redirections fonctionnent ?

Mettre en place des redirections n'est pas toujours une mince affaire. Nous avons seulement abordé l'aspect PHP des redirections, mais il est aussi possible d'utiliser un fichier .htaccess pour effectuer de l'URL rewriting et améliorer le référencement d'un site internet.

Utilisez notre outil !


Nous avons donc conçu un outil de test de redirections HTTP qui vous permet de voir si la redirection que vous venez de mettre en place est temporaire, définitive ou tout simplement non fonctionnelle.


Il vous suffit de rentrer l'adresse de l'ancienne page, pour voir vers quelle page elle est redirigée, et avec quel statut. Essayez par exemple l'ancienne adresse d'Aidoweb : http://www.aidoforum.com. Vous pourrez voir qu'elle est définitivement redirigée vers http://www.aidoweb.comSourire

Par Pouzy , Le 29 Octobre 2010 à 17h15
Ce tutoriel est la propriété d'Aidoweb et ne peut en aucun cas être copié.

Retour à PHP / MySQL

Ajouter un commentaire

Suite a un fort volume de spam, les commentaires d'invités sont pour le moment désactivés. Vous devez vous inscrire ou vous identifier pour pouvoir commenter cet article, ou demander du support.

Lectures recommandées

Commentaires sur cet article

Aucun commentaire pour le moment.

Tutoriaux > PHP / MySQL > Les redirections en PHP - Utilisation de Header Location