Exhaustif.com
Contact Images, vidéos et blagues drôles HadriBase, CRM, devis et facture
Exhaustif.com
Personnaliser les erreurs 404 apache
Date de publication : vendredi 7 septembre 2007, dernière modification le : vendredi 7 septembre 2007.

Comment personnaliser les pages 404 , 403, etc...

  Personnaliser les erreurs 404 apache

Vous pouvez aussi consulter la chronique sur Apache.

Apache nous offre une directive à insérer dans un htaccess pour personnaliser nos pages d’erreurs, il s’agit de ErrorDocument.

Remarque : cette page est valable aussi bien pour Apache 1.3 que pour les versions 2.0 et 2.2.


Les codes d’erreur

Une code de type 4xx est une erreur du coté du client (firefox ou internet explorer) alors qu’une erreur 5xx est du coté du serveur. Le code 200 quand à lui signifie que tout va bien.

400 Bad Request La syntaxe de la requête est incorrecte
401 Unauthorized L’accès à la ressource n’est pas autorisé car le serveur exige une identification de l’utilisateur
402 Payment Required Un paiement est requis pour accéder à la ressource (réservé pour une utilisation future)
403 Forbidden Le serveur refuse de délivrer la ressource
404 Not Found La ressource spécifiée n’existe pas
405 Method Not Allowed Le client tente d’utiliser une méthode non autorisée sur la ressource spécifiée
406 Not Acceptable La réponse ne correspond pas aux caractéristiques de la directive Accept de la requête
407 Proxy Authentification Required Le serveur proxy exige une identification avant de transmettre la requête
408 Request Timeout Le temps d’attente de la réponse du client est écoulé
409 Conflict La requête entre en conflit avec l’état actuel de la ressource
410 Gone La ressource n’est plus disponible et aucune adresse de remplacement n’est connue
411 Length Required La longueur de la requête n’a pas été précisée
412 Precondition Failed Une des conditions envoyées dans la requête n’est pas vérifiée
413 Request Entity Too Large La ressource demandée est trop volumineuse pour le serveur
414 Request-URI Too Long L’URI de la ressource spécifiée est trop longue
415 Unsupported Media Type Le format de requête n’est pas supporté par la ressource demandée
416 Requested Range Not Satisfiable Le client demande un Range impossible à déterminer sur la ressource
417 Expectation Failed La prévision de ressource exprimée dans le champ Expect de la requête ne peut pas être satisfaite
500 Internal Server Error Une erreur interne au serveur est survenue
501 Not Implemented La fonctionnalité réclamée n’est pas supportée par le serveur
502 Bad Gateway Le serveur ne comprend pas la requête qui provient d’un proxy ou d’une passerelle
503 Service Unavailable Le service n’est pas disponible pour le moment
504 Gateway Timeout La temps d’attente provenant d’un proxy est écoulé
505 HTTP Version Not Supported La version du protocole HTTP spécifiée par le client n’est pas supportée par le serveur

Dans cette liste seuls les codes 401, 403, 404 et 500 peuvent être fréquemments rencontrés.
Ces codes ont été définis par la norme RFC 2616 instaurant le protocole HTTP 1.1.
- La norme RFC 2616


Fichiers

Pour réaliser une page d’erreur personnalisées tout en enregistrant ces erreurs, voici le fichier .htaccess complet :

ErrorDocument 400 /error.php?code=400
ErrorDocument 401 /error.php?code=401
ErrorDocument 403 /error.php?code=403
ErrorDocument 404 /error.php?code=404
ErrorDocument 500 /error.php?code=500

et le fichier error.php (à poser à la racine du site) :

<?
// Un peu de sécurité
$code $_GET['code'] + 0;
if (
$code == 0)
    die(
'Hack');

// On enregistre l'erreur
$f fopen("error.log""a");
$log $code ' ~'.$_SERVER['REQUEST_URI'].'~ ~';
$log .= php_uname('n').'~ ~' date('Y-m-d H:i:s');
$log .= '~ ~' $_SERVER['REMOTE_ADDR'] . '~ ~';
$log .= $_SERVER['HTTP_USER_AGENT'] . "~\n";
fwrite($f$log);
fclose($f);
?>

<html><head>
<title>Erreur <?=$code?></title>
</head><body>
<h1>Une erreur <?=$code?> est survenue</h1>
<!-- On est poli -->
Toutes nos excuses
</body></html>

On aura ddonc dans le fichier error.log toutes les erreurs enregistrées.

 


Actualités liées

16/03 Skype sous linux version 2.0 Skype sous linux version 2.0
16/01 1 000 000 de .Fr 1 000 000 de .Fr
21/11 Le meilleur d’Ebay Le "meilleur" d’Ebay
7/11 2 dossiers à découvrir 2 dossiers à découvrir
16/08 La carte du monde du spam La carte du monde du spam
Chroniques liées

septembre 2007 Tester son site web en local Tester son site web en local
septembre 2007 Personnaliser les erreurs 404 apache Personnaliser les erreurs 404 apache
mai 2005 AWStats : vos statistiques web AWStats : vos statistiques web
février 2005 Nettoyage de code HTML Nettoyage de code HTML
janvier 2005 MySQL MySQL