Pour rediriger le visiteur vers une autre page (particulièrement utile dans une boucle conditionnelle), utilisez simplement le code suivant:
<?php
header('Location: mypage.php');
?>
Dans ce cas, mypage.php
c'est l'adresse de la page vers laquelle vous souhaitez rediriger les visiteurs. Cette adresse peut être absolue et peut également inclure les paramètres dans ce format:mypage.php?param1=val1&m2=val2)
Chemin relatif / absolu
Lorsqu'il s'agit de chemins relatifs ou absolus, il est idéal de choisir un chemin absolu à la racine du serveur (DOCUMENT_ROOT). Utilisez le format suivant:
<?php
header('Location: /directory/mypage.php');
?>
Si jamais la page cible se trouve sur un autre serveur, vous incluez l'URL complète:
<?php
header('Location: http://www.ccm.net/forum/');
?>
En-têtes HTTP
Selon le protocole HTTP, les en-têtes HTTP doivent être envoyés à before
tout type de contenu. Cela signifie qu'aucun caractère ne doit être envoyé avant l'en-tête - pas même un espace vide!
Redirection temporaire / permanente
Par défaut, le type de redirection présenté ci-dessus est temporaire. Cela signifie que les moteurs de recherche, tels que la recherche Google, ne prendront pas en compte la redirection lors de l'indexation.
Si vous souhaitez informer les moteurs de recherche qu'une page a été définitivement déplacée vers un autre emplacement, utilisez le code suivant:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: new_address');
?>
Par exemple, cette page contient le code suivant:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: /pc/imprimante.php3');
exit();
?>
Lorsque vous cliquez sur le lien ci-dessus, vous êtes automatiquement redirigé vers cette page. De plus, il s'agit d'une redirection permanente (Statut: 301 Déplacé en permanence). Donc, si vous saisissez la première URL dans Google, vous serez automatiquement redirigé vers le deuxième lien redirigé.
Interprétation du code PHP
Le code PHP situé après l'en-tête () sera interprété par le serveur, même si le visiteur se déplace vers l'adresse spécifiée dans la redirection. Dans la plupart des cas, cela signifie que vous avez besoin d'une méthode pour suivre la header()
fonction de la exit()
fonction afin de diminuer la charge du serveur:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: address');
exit();
?>