Introduction

Il est possible de remplacer les pages d'erreur/information qui sont de base par défaut sur Apache2, ce changement pour une page personnalisée peut avoir plusieurs raison, pour une question de design par exemple, ce qui nous permet d'avoir des pages d'erreur dont le design s'intègre à votre site par exemple.

Une autre raison à ce changement pourrait également être la sécurité, en effet, par défaut, ces pages d'erreur vont donner à un éventuel attaquant de précieuses informations, comme par exemple la version d'Apache, ou le système d'exploitation utilisé, ce qui peut être un problème de sécurité si le serveur n'est pas à jour.

Mise en place

Les pages personnalisée peuvent se définir dans les VHOSTS de vos domaines (dans /etc/apache2/sites-enabled/votresite.conf) mais également dans la configuration globale de votre serveur Apache, avec la même syntaxe.

Nous allons donc commencer par éditer notre VHOST:

sudo nano /etc/apache2/sites-enabled/votresite.conf

Ici, nous avons une configuration basique d'un VHOST:

<VirtualHost *:80>
        ServerName monsite.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/monsite.com

        ErrorLog ${APACHE_LOG_DIR}/knl_error.log
        CustomLog ${APACHE_LOG_DIR}/knl_access.log combined
</VirtualHost>

Pour mettre en place des pages personnalisées pour les erreurs, nous allons utiliser ErrorDocument, la syntaxe est assez simple à comprendre: ErrorDocument <code erreur> <page>, la page devra être à la racine de l’hôte virtuel (dans cet exemple, /var/www/monsite.com)

Le code erreur correspond au message http que vous souhaitez modifier, par exemple, l'erreur 404 indique un lien mort, une erreur 403 indique une zone interdite du site.

Un exemple avec une page 404 personnalisée:

<VirtualHost *:80>
        ServerName monsite.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/monsite.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        ErrorDocument 404 /error_404.php
</VirtualHost>

Vous pouvez ajouter une ligne pour chaque erreur que vous souhaitez remplacer par une page personnalisée 😎