Déclencher une erreur 404 chez Free

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Déclencher une erreur 404 chez Free

par Xenon_54 » 01 nov. 2007, 04:19

Il est normal que la page d'erreur d'Apache ne s'affiche pas.

Le fichier PHP existe bel et bien et donc Apache ne redirigera pas automatiquement vers la 404 définie par la directive ErrorDocument. Le status HTTP réenvoyé par PHP ne sera pas réévalué une 2e fois par Apache.

Cependant le status HTTP envoyé au client sera le bon:

Code : Tout sélectionner

$ cat 404.php <?php header("HTTP/1.0 404 Not Found"); ?> $ curl -I localhost/404.php HTTP/1.0 404 Not Found Date: Thu, 01 Nov 2007 02:18:19 GMT Server: Apache X-Powered-By: PHP/5.2.4 Connection: close Content-Type: text/html

par jobherzt » 31 oct. 2007, 10:03

J'ai peut-être loupé quelque chose,
mais une simple redirection vers une page qui n'existe pas ne suffirait pas ? :-k
J'avais essayé ca, mais firefox rale et affiche un message "la page que vous avez demandé a tenté une redirection vers une page qui n'existe pas"...

Et puis une redirection ca implique que l'adresse change dans la barre, ce qui n'est pas le cas avec l'erreur 404.

J'ai une solution de repli, a savoir creer une page d'erreur personnalisée pour tout le site, puis generer la meme page lorsque je decle,che "manuellement" une erreur 404 comme ca j'aurai malgré tout une coherence sur tout le site. Mais j'aurais bien aimé savoir pourquoi cette page d'erreur ne s'affiche pas quand il y avait une erreur 404, je pensais que c'etait corrélé....

par albat » 31 oct. 2007, 00:43

J'ai peut-être loupé quelque chose,
mais une simple redirection vers une page qui n'existe pas ne suffirait pas ? :-k

par jobherzt » 30 oct. 2007, 22:30

Pour info, je sais qu'on peut creer une page 404 personnalisée avec htaccess, mais je n'en veux pas une personnalisée, je veux bien celle de Free par defaut ! du coup ca m'etonne que ca ne l'y renvoie pas, ca laisse a penser que meme en creant un fichier htaccess qui va bien il n'en tiendra pas compte. Y a t il une commande qui permet de forcer son comportement ?

par jobherzt » 30 oct. 2007, 22:22

ah tiens par contre, je ne sais pas si le exit y est pour qqchose, mais le code a l'air d'etre renvoyé :

Code : Tout sélectionner

moi$ wget http://monsite/pdf/existePas.pdf --21:19:57-- http://monsite/pdf/existePas.pdf => `existePas.pdf' Résolution de monsite Connexion vers monsite... connecté. requête HTTP transmise, en attente de la réponse... 404 21:19:57 ERREUR 404: (pas de description).
par conte ca n'affiche pas la page d'erreur standard de free.. en fait c'est peut etre a moi de forcer l'affichage de cette page, mais je pensais que ca se faisait tout seul.

par jobherzt » 30 oct. 2007, 22:13

Merci d'avoir répondu !

J'ai essayé, ca n'a pas l'air de mieux marcher..

par @rthur » 30 oct. 2007, 22:11

Bonjour,

Essaye de rajouter un exit(); après ton header() ;-)

Déclencher une erreur 404 chez Free

par jobherzt » 30 oct. 2007, 20:20

Bien le bonjour, un bout de temps que je n'avais pas posté ici :)

Je me heurte a un probleme étrange : j'ai un hebergement chez free, et j'ai besoin de pouvoir declencher des erreurs 404. J'utilise la fonction header par ailleurs pour d'autre chose et ca fonctionne tres bien. Par contre, un simple fichier php ne contenant que :

Code : Tout sélectionner

<?php header("HTTP/1.0 404 Not Found"); ?>
m'affiche une page blanche. Etant au fait des techniques de déboguage les plus pointus, j'essaie :

Code : Tout sélectionner

<? header("HTTP/1.0 404 Not Found"); if(headers_sent()) { echo "coucou"; }else{ echo "babar"; } ?>
qui m'affiche "babar", ce qui signifie que de son coté les headers ne sont pas envoyés... J'ai essayé diverses variantes, le mieux que j'ai pu obtenir c'est.... une erreur 500 !

est ce que le header("HTTP/1.0 404 Not Found"); ne doit pas se trouver seul, est ce que c'est specifique a free, est ce que vous avez une idee de ce qu'il se passe ??

merci !