15/11/2024

Apache

Apache2 : Personnaliser les messages d’erreurs

I. Présentation

Les messages d’erreurs par défaut d’Apache sont pas très esthétiques, peuvent être intimidant pour un utilisateur lambda vu qu’ils sont en Anglais, et en plus, ils fournissent des informations sur votre serveur, comme la version d’Apache utilisée.

apacheerror1

Ainsi, si une personne malintentionnée peut repérer la version de votre serveur Web, elle peut également se renseigner sur les vulnérabilités de cette version. Ce qui fait une raison de plus pour personnaliser les messages d’erreurs.

Ici, nous allons donc voir comment personnaliser ces messages et nous en prendrons un pour exemple afin de réaliser des tests. Ce qui est intéressant, c’est que la procédure reste la même pour tous les messages d’erreurs.

La personnalisation des messages d’erreurs s’effectue avec l’utilisation d’un ou de plusieurs fichiers « .htaccess ».

II. Configuration du site

Avant de procéder à la mise en place d’un fichier .htaccess, nous devons vérifier la configuration du serveur Apache puisqu’il y a un paramètre qui permet de préciser si les fichiers « .htaccess » sont lus ou non.

Il s’agit du paramètre « AllowOverride » qui est définit dans chaque fichier de configuration d’un site Apache, dans la directive « Directory ».

Afin de vérifier si votre site est bien configurez, rendez-vous dans le répertoire suivant de votre serveur Apache :

/etc/apache2/sites-available

Ce répertoire contient le fichier de configuration de chacun de vos sites disponibles, où le fichier du site par défaut actif d’Apache se nomme « default ». Éditez ce fichier, vous y trouverez notamment ceci – ou quelque chose d’équivalent :

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

Vous remarquerez que la ligne « AllowOverride » a pour valeur « None » ce qui signifie qu’Apache, pour ce site, ne lit pas et donc ne prend pas en compte les fichiers .htaccess. Nous allons donc modifier cette valeur en indiquant « FileInfo » qui permet d’utiliser des paramètres de contrôle de documents dans le .htaccess. Pour autoriser tout type de paramètres dans le fichier .htaccess, indiquez « All » si vous le souhaitez.

Après modification, ça vous donnera ceci :

Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all

Note : Si vous utilisez plusieurs sites, vérifiez chacun de vos fichiers.

Pour finir cette étape, redémarrez votre serveur Apache pour que la modification soit prise en compte :

service apache2 restart

III. Mise en place du fichier .htaccess

Maintenant que notre serveur web est configuré pour prendre en compte notre fichier .htaccess, nous pouvons le créer. Créez donc un fichier nommé « .htaccess » - sans oubliez le point au début - à la racine de votre site web.

Dans ce fichier nous aurons besoin de la directive « ErrorDocument », qui fonctionne comme ceci :

ErrorDocument Code_erreur Action

Le « Code_erreur » correspond au numéro de code sur 3 chiffres pour lequel on souhaite effectuer une action, qui est elle-même indiquée juste après c’est-à-dire où j’ai écrit « Action ». Cette action peut être un message indiqué entre guillemets ou un lien vers une page web personnalisée qui peut être interne ou externe.

Dans notre cas, nous allons personnaliser le message d’erreur pour une erreur de type 404 c’est-à-dire « Not Found » qui apparaît lorsqu’on tente d’accéder à une ressource qui n’existe pas (une page, une image, etc…). Lors du déclenchement de l’erreur, nous afficherons une page personnalisée nommée « 404_error.html » qui se trouve dans le répertoire « errors » du site.

Ce qui peut être intéressant de faire d’un point de vue organisationnel, c’est de créer un répertoire « errors » (par exemple) où seront stockées toutes les pages HTML personnalisées pour les différents codes d’erreurs (les pages ne sont pas obligatoirement en HTML).

Dans le fichier « .htaccess » ça nous donnera ceci :

ErrorDocument 404 /errors/404_error.html

Note : le « / » permet d’indiquer que c’est une URL de redirection interne.

Ensuite, personnalisez la page comme vous le souhaitez, mais toutefois, voici quelques idées de chose que vous pouvez intégrer :

  • Un lien vers la page d’accueil du site,
  • Un lien vers le plan du site,
  • Un système qui propose un lien ressemblant au lien auquel l’utilisateur tente d’accéder,
  • Le logo de votre site.

 

IV. Vérification

Une fois que vous avez fait votre première page, en l’occurrence celle du code d’erreur « 404 », c’est important de vérifier le fonctionnement. Rendez-vous sur votre site et indiquez le chemin vers une ressource qui n’existe pas, et normalement votre page personnalisée devrait apparaître.

Voici un petit exemple simple :

apacheerror2

Remarque : Vous pouvez créer plusieurs fichiers .htaccess, par exemple : un à la racine du site, un dans le dossier « images », un dans le dossier « css », etc… afin d’indiquer des messages d’erreurs différents selon où l’utilisateur tente d’accéder.

V. Les codes d’erreurs

En ce qui concerne les différents codes d’erreurs HTTP, je vous renvoie vers Wikipedia qui propose une liste de ces codes : Liste des codes HTTP

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Apache2 : Personnaliser les messages d’erreurs

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.