Mettre en place une redirection définitive en PHP

De nombreux webmasters doivent faire face, un jour ou l'autre, a devoir mettre en œuvre un changement d'URL ou a modifier l'arborescence de son site. On peut utiliser un script PHP1) pour mettre en place une redirection définitive d'URL.

Fonctionne sur PHP 4, PHP 5 et PHP 7

Pourquoi mettre en place des redirections ?

Lorsque l'on change de place une page web, il y a un risque important que les liens externes pointant sur cette page fassent arriver les utilisateurs sur une page erreur 404. Les moteurs de recherche risques donc de réinitialiser le référencement de la page et donc de voir la qualité de référencement du site diminué. Pour éviter tous ces désagréments on peut mettre en place des redirections définitives. Nous allons utiliser la fonction header() de PHP.

Les entêtes HTTP

Lors du chargement du page, le serveur envoi au navigateur une entête HTTP, en général c'est un code HTTP 200 (OK). Il existe un code pour informer le navigateur que la page demandé a été déménagé à une autre adresse, c'est le code HTTP 301 (moved permanently).

Si un caractère est envoyé avant un en-tête HTTP une erreur de type "headers already sent by" se produira.

Le code

Voici un exemple de code :

<?php 
header('Status: 301 Moved Permanently', false, 301);   
header('Location: http://www.zonewebmaster.eu/nos_tutoriaux/');
exit(); 
?>

La première ligne de ce code permet d'indiquer qu'il s'agit d'une redirection permanente Status: 301 Moved Permanently. La seconde ligne permet d'indiquer l'URL de la nouvelle page. il est conseillé de rajouter la commande exit() après la commande header() pour éviter que le serveur interprète le code PHP situé après. Ceci pour éviter de faire travailler le serveur pour rien.

Notes de version

  • [27/12/2015] : Article initial
  • [17/11/2017] : Mise à jour de l'article

Auteurs et sources

1)
on peut aussi utiliser la redirection Apache2