Page erreur 404 personnalisée en PHP
Lors de la réalisation d’un site web, il peut être intéressant d’implémenter sa propre page d’erreur 404.
Lorsqu’un utilisateur demande une page inexistante sur un site, le serveur HTTP personnalisée.
En prenant l’exemple de page écrites en HTTP Apache, il faut paramétrer le fichier .htaccess et d’écrire une page nommée erreur.php[2].
Il faut ajouter cette ligne dans le fichier .htaccess :
ErrorDocument 404 http://www.mondomaine.com/erreur.php?code=404
La page erreur.php doit contenir le code suivant[3] :
<html> <head> <title>Page d'erreur HTTP <?=code?></title> </head> <body> Vous venez de rencontrer une erreur HTTP <?=code?> pour la page <?=$REQUEST_URI?>. </body> </html>
Si l’utilisateur demande une page qui n’existe pas, il sera redirigé vers cette page. Par contre, la variable $REQUEST_URI retourne la valeur /erreur.php. Pour corriger ce problème et afficher correctement la page demandée et qui a provoqué l’erreur 404, il faut rectifier le fichier .htaccess ainsi :
ErrorDocument 404 /erreur.php?code=404
Maintenant la page d’erreur affiche correctement le nom de page source de l’erreur 404.
Pour finir, on peut estimer qu’il n’est pas très propre de véhiculer le code d’erreur HTTP. En reprenant l’exemple depuis le début, il faut implémenter la gestion des erreurs de la façon suivante.
Le fichier .htaccess se simplifie :
ErrorDocument 404 /erreur.php
Le fichier erreur.php doit être modifié pour utiliser la variable $_SERVER["REDIRECT_STATUS"] :
<html> <head> <title>Page d'erreur HTTP <?=$_SERVER["REDIRECT_STATUS"]?></title> </head> <body> Vous venez de rencontrer une erreur HTTP <?=$_SERVER["REDIRECT_STATUS"]?> pour la page <?=$REQUEST_URI?>. </body> </html>
Voici donc une méthode simple et efficace pour gérer les erreurs HTTP telles que 401, 403, 500, …