La nuit, quand je n’arrive pas à dormir, il m’arriver de me relever et de g33ker un bon coup. A défaut de me reposer, cela a au moins le mérite de me détendre un peu.
Il y a peu, j’analysais mes statistiques de fréquentation. De jolis graphiques généré chaque jour par awstats. Et puis, en y regardant de plus près, j’ai constaté que j’avais pas mal de pages qui renvoyaient un code HTTP 403 (Liste des codes HTTP). Malheureusement, je n’ai pas trouvé dans awstats une solution pour me dire les pages concernées par ce problème, ni la raison d’ailleurs.
Bon, j’avais déjà une idée de mon problème... J’interdis le téléchargement des images, si celles-ci ne sont pas affichées par mon site (prévention contre les « hotlink » mais d’après les stats, le nombre est plutôt élevé. Alors, je me suis dis que j’allais coder un peu pour découvrir le pourquoi du comment.
Le but du script ci-dessous est d’enregistrer les requêtes HTTP en erreur, d’enregistrer les informations utiles dans un fichier journal, triés en fonction du code d’erreur. Puis, ces opérations effectuées, de rediriger l’internaute vers une page d’erreur plus explicite qu’un vulgaire code.
Ce script s’interface avec Apache via la directive ErrorDocument (la doc est ici)
Cela donne au final dans mon cas pour ma configuration apache :
ErrorDocument 400 /error.php ErrorDocument 401 /error.php ErrorDocument 402 /error.php ErrorDocument 403 /error.php ErrorDocument 404 /error.php ErrorDocument 405 /error.php