Je développe une API RESTful et j'ai écrit un gestionnaire mod_perl2 qui s'occupe de la requête.Comment supprimer le document d'erreur apache par défaut dans mod_perl?
Mes offres de gestionnaire avec des codes d'erreur en définissant $r->status($http_code)
et return $http_code;
Tout va bien, sauf un petit problème: quand mon HTTP_CODE est différent de 200 (par exemple 404), apache ajoute un document d'erreur HTML par défaut à mon propre réponse générée.
Par exemple:
GET /foo
donne:
$VAR1 = bless({
'status' => 404,
'data' => {},
'message' => 'Resource not found for foo'
}, 'My::Response');
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /foo was not found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
<hr>
<address>Apache/2.0.54 (Fedora) Server at localhost Port 80</address>
</body></html>
Comment puis-je me débarrasser de ce code HTML généré par apache?
MISE À JOUR: Ma faute. Mon gestionnaire mod_perl2 renvoyait un code HTTP_ * au lieu de Apache2 :: Const :: OK.
Comment aborderiez-vous ce problème avec Apache 1.3 et mod_perl 1.xx lorsque Apache :: Constantes ne supporte pas les codes de statut HTTP comme 201? –