Messages: 169

Enregistré le: 29 Mai 2003

Message le Sam Aoû 30, 2003 13:19

Bonjour,
je veux faire une redirection qui renvoi un code d'erreur 404,

j'ai testé celà:
Code: Tout sélectionner
header("Location: http://www.xxxx.org/erreur-404/,404");


puis celà dans la page 404:
Code: Tout sélectionner
header('HTTP/1.0 404 Not Found');


celà me renvoi toujours un code 200, comment dois-je my prendre ?
je voudrai que ça me renvoi exactement un code 404 Not Found comme dans le cas d'une veritable erreur 404...
Haut
16 Réponses
Messages: 169

Enregistré le: 29 Mai 2003

Message le Sam Aoû 30, 2003 13:37

ah joubliai de demander si l'ajout du header status:404 not found est pris en compte même si le veritable code de reponse est 200 Ok ?
Haut
Messages: 169

Enregistré le: 29 Mai 2003

Message le Sam Aoû 30, 2003 13:43

je voudria en quelque sorte emuler la fonction ErrorDocument 404 d'apache en php avec les headers...

mais la il me renvoi un code 302 pis un code 200 (evidemment) , c pas une redirectin que je veux faire...
Haut
Messages: 169

Enregistré le: 29 Mai 2003

Message le Sam Aoû 30, 2003 13:46

GET /pageinvalide/ HTTP/1.1
HTTP/1.x 302 OK

GET /erreur-404/ HTTP/1.1
HTTP/1.x 200 OK
Haut
Messages: 55

Enregistré le: 13 Déc 2002

Message le Sam Aoû 30, 2003 19:36

essaie avec header("HTTP/1.0 404 Not Found");
puis
header("Connection: close");

dans ta page 404.html
Haut
Messages: 169

Enregistré le: 29 Mai 2003

Message le Dim Aoû 31, 2003 19:26

celà ne marche pas !
vous connaissez pas une doc des headers ?
Haut
Messages: 169

Enregistré le: 29 Mai 2003

Message le Dim Aoû 31, 2003 20:07

g pas trouvé de réponse dans la rfc 1945...
Haut
Messages: 169

Enregistré le: 29 Mai 2003

Message le Lun Sep 01, 2003 9:41

faut trouver une solution ! :(
Haut
Messages: 622

Enregistré le: 14 Oct 2002

Message le Lun Sep 01, 2003 10:26

loupetiart a écrit:faut trouver une solution ! :(

Perso, j'aurais fait ça:
Code: Tout sélectionner
<?php
header("Status: 404 Not Found");
header("Location: http://www.votresite.com/unepage.htm");
exit();
?>

Mirgolth
Haut
Messages: 169

Enregistré le: 29 Mai 2003

Message le Mer Oct 01, 2003 19:29

en faisant ça,
ça renvoi une erreur 404 sans afficher la page,

alors j'ai fait une redirection vers la page erreur-404 qui renvoi elle même une erreur 404

redirection vers erreur 404 je suppose que c'est consideré comme une erreur 404,

confirmation ?
Haut
Messages: 291

Enregistré le: 22 Avr 2003

Message le Jeu Sep 01, 2005 11:05

Pour ma part, cela renvoie un 200 donc c'est pas bon du tout.

je n'arrive vraiment pas à trouver le moyen de faire cela :

une ancien page (un objet) que google recrawl et tombe sur une 404 si l'objet n'existe plus
Haut
Messages: 195

Enregistré le: 8 Juin 2004

Message le Sam Juin 14, 2008 1:42

Je relance le sujet car je cherche une solution claire et propre au probleme posé ici.

Sur la dernière solution de "loupetiart" :
2 requetes 404 sont envoyées au client, et ca ne me parait pas satisfaisant

Est-il possible de simuler une page 404 parfaitement sur une page intermédiaire existante sans avoir à réinventer la poudre ?
Haut
Messages: 195

Enregistré le: 8 Juin 2004

Message le Sam Juin 14, 2008 2:02

J'ai cette idée : à confirmer si elle est bonne ... ?

1 - J'appelle une page inexistante sur mon serveur. Par ex. : bidule.html
pour récupérer le source html généré par Apache que je copie

2 - Je créé mon source qui va simuler l'erreur à l'identique d'apache.
Dans un premier temps, le source renvoie (comme propose "loupetiart") l'erreur 404 en php :

<?php header("HTTP/1.1 404 Not Found"); ?>
ou <?php header("Status: 404 Not Found"); ?>

3 - Puis reproduis le contenu html copié
(en gérant dynamiquement les 2,3 éléments qui peuvent se modifier)

L'intérêt d'une telle procedure est de cacher des pages d'un système sécurisé et éviter l'incitation à la curiosité malveillante.

Y a t-il donc une faille à cette proposition ?
Haut
Messages: 666

Enregistré le: 11 Jan 2005

Message le Mar Déc 23, 2008 15:58

La solution c'est d'envoyer un header 404 et d'afficher le contenu de la page d'erreur ensuite... Si derrière le header vous faites une redirection avec "location", c'est la réponse 200 de la page de redirection qui sera renvoyée
Il faut faire :

Code: Tout sélectionner
header("HTTP/1.1 404 Not Found");
echo file_get_contents("lapage404.php");
exit;


et c'est tout ;)
Haut
Messages: 694

Enregistré le: 1 Juin 2005

Message le Jeu Oct 11, 2012 13:47

magnifique, 4 ans après ce post vient de me servir !
Merci skippyzrnr ;)
Haut
Messages: 666

Enregistré le: 11 Jan 2005

Message le Ven Oct 12, 2012 17:14

Il n'est jamais trop tard pour rendre service
Haut
Messages: 28

Enregistré le: 17 Jan 2003

Message le Mar Sep 27, 2016 14:48

et encore 4 ans plus tard, ca vient de me servir! Merci!
Haut