[resolu] Header php (question sur l'article d'O. Duffez)

  • Auteur de la discussion Auteur de la discussion pasteque
  • Date de début Date de début
Nouveau WRInaute
Bonjour.

J'ai eu question au sujet de l'article d'Olivier Duffez ici :
https://www.webrankinfo.com/dossiers/conseils/relancer-referencement
concernant le header php.

Il est indiqué :
Chaque page au format HTML comprend un entête, transmis par le serveur juste avant la page elle-même. Cet entête comprend entre autres un code HTTP indiquant le statut de la page.

Il est donné un exemple de code source :

Code:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.nouveausite.com/");
exit;
?>

Le exit a attiré mon attention, cela sous entend qu'on ne peut pas rajouter d'autres instructions php à la suite et qu'on doit immédiatement mettre fin au script? Ou bien peut on quand meme rajouter d'autres instructions, tel une redirection vers la nouvelle page, par exemple :

toto.php

Code:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.toto.net/forum/viewtopic.php?t=".$_GET['t']);
[b]echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1; URL=http://www.toto.net/forum/viewtopic.php?t=".$_GET['t']."\">"[/b];
?>

Dans le cas de mon exemple, la redirection marche, mais je ne sais pas si de ce fait le code 301 a bien été retourné (comment fait on pour tester? vu que c'est un code transmis juste avant la page à afficher?)

Merci pour vos compléments d'information !
 
WRInaute impliqué
Bh@Mp0 a dit:
Le 'header("Location: ....");' fait déjà le travail de redirection ...
Oui et non.
Quel est l'interet d'envoyer autre chose après un header Location ? Quoi que vous envoyiez après, ça sera ignoré par le navigateur, alors autant ne rien envoyer (d'où le exit;)
 
WRInaute impliqué
RomsIW a dit:
Il y a une boulette là-dessus :lol:
Le jour où un navigateur enverra comme en-tête au serveur:
Code:
GET http://www.commentcamarche.net HTTP/1.0
...
ca sera vraiment strange ! Ca voudrais dire qu'il y a un fichier qui s'appelle "http://www.commentcamarche.net" sur le serveur "inconnu".

La vraie requête serait
Code:
GET / HTTP/1.1
Host: www.commentcamarche.net
...

Edit: après recherche, la premiere requete serait celle envoyée par un client à un proxy HTTP, qui lui, renverrait la seconde au serveur. Donc dans tous les cas, on ne reçoit jamais sur un serveur HTTP la première requete.
 
Discussions similaires
Haut