OVH Cloud OVH Cloud

Erreurs HTTP

7 réponses
Avatar
Eric
Bonjour,

J'ai une question à poser, ça me gène limite de la poser car elle
semble bateau, mais je n'ai pas du savoir entrer les bon mots clés
dans les moteurs de recherches pour trouver la réponse...

Tout le monde sait ici que l'on peut utiliser header() en PHP pour
renvoyer un code HTTP.
A l'inverse des question fréquemment posées ici, je ne souhaite pas
"capturer" une erreur 404 (ou autre) pour renvoyer une belle page
personnalisée, mais créer une erreur 404 standard depuis PHP.

Prenons un exemple :
<?
header("HTTP/1.0 404 Not Found"); exit;
?>
ne marche ainsi pas, ou tout du moins ne fait l'effet que j'attend, car
sous Firefox, j'ai une page blanche, sans mention du code 404 ou de
"not found" : ce que je veux, c'est créer l'erreur, et que Apache se
"démerde" avec (affiche le texte horrible en anglais, va chercher la
page standard dans un .htaccess, etc... comme si la page n'existait
REELLEMENT pas).

Internet Explorer rattrape bien le coup, en mettant un message d'erreur
en français dans tous les cas, mais Firefox ne fait rien, et je me
retrouve avec une page blanche pour le script recopié plus haut.

Existe-t-il donc un moyen de renvoyer l'erreur à Apache pour qu'il
crée la page d'erreur ?

Par avance, merci de votre aide !

7 réponses

Avatar
bruno
t'a qu'a rediriger vers une page non existante... :)
Avatar
christophe.meresse

A l'inverse des question fréquemment posées ici, je ne souhaite pas
"capturer" une erreur 404 (ou autre) pour renvoyer une belle page
personnalisée, mais créer une erreur 404 standard depuis PHP.


A vrai dire je ne suis pas certain d'avoir compris tout à fait la
problèmatique mais est-ce que ca ne suffirait pas ?:
<?php
header("Location:http://www.nullepart.net/page_inexistante.html");
?>

A+, Désolé si j'ai rien compris.
Christophe

Avatar
Thibaut Allender

Prenons un exemple :
<?
header("HTTP/1.0 404 Not Found"); exit;
?>
ne marche ainsi pas, ou tout du moins ne fait l'effet que j'attend, car
sous Firefox, j'ai une page blanche, sans mention du code 404 ou de
"not found" : ce que je veux, c'est créer l'erreur, et que Apache se
"démerde" avec (affiche le texte horrible en anglais, va chercher la
page standard dans un .htaccess, etc... comme si la page n'existait
REELLEMENT pas).


Apache ne peut pas se démerder, puisqu'il vient de délivrer ton script
PHP qui existe bien...
Comment pourrait-il savoir *quelle page* n'existe pas

C'est toi qui doit générer le contenu de la page.

Au lieu d'appeler exit(), appelle echo '"blah blah cette page n'existe pas"

--
thibaut allender | http://capsule.org | http://photo.capsule.org

Avatar
Eric
Justement, non ;-)

L'idée c'est de laisser Apache faire le boulot. Il a LUI, des pages
par défaut, des .htaccess pour lui indiquer des pages d'erreur, gérer
le 404, c'est pas mon boulot, c'est le sien, en gros, c'est ça mon
idée, je n'ai pas envie de m'em.. à reprogrammer des erreurs 404, à
réinveter a roue.
Avatar
christophe.meresse

Justement, non ;-)

L'idée c'est de laisser Apache faire le boulot. Il a LUI, des pages
par défaut, des .htaccess pour lui indiquer des pages d'erreur, gérer
le 404, c'est pas mon boulot, c'est le sien, en gros, c'est ça mon
idée, je n'ai pas envie de m'em.. à reprogrammer des erreurs 404, à
réinveter a roue.


Oui justement, je crois que tu n'as pas compris l'idée (qui est
d'ailleur la même que celle de bruno). La page
http://www.nullepart.net/page_inexistante.html ne DOIT PAS exister,
c'est une url bidon juste pour tomber sur une vraie error 404...

Avatar
Eric
J'avais bien compris cette idée, mais bon...

1. Ca fait pas propre.
2. Il n'y a pas que l'erreur 404 dans la v... euh... sur le web ;)
Je me vois mal recréer un dossier avec un .htaccess pour faire une
erreur 403, et ainsi de suite :-?
Avatar
bruno
que veut tu faire exactement?
tu ne veut pas lui indiquer une @ qui n'existe pas, et tu ne veut pas
simuler...

donc tu veut travailler au niveau de apache?
fr.comp.infosystemes.www.serveurs