Cette application est destinée aux webmasters désireux d’avoir un peu plus de contrôle sur les erreurs HTTP que ce que permet Apache dans sa configuration par défaut.
IBDErrorsManager intercepte les erreurs HTTP 4xx et 5xx et génère une page d’erreur personnalisable ou redirige le visiteur vers une page définie dans le fichier de configuration.
L’application prend également en charge l’envoi d’un rapport d’erreur par mail pour que vous soyez informé et puissiez la corriger si nécessaire.
Licence : GNU GPL version 2
Installation
- décompressez l’archive,
- copiez le contenu sur votre serveur web à l’emplacement de votre choix,
- placez le fichier .htaccess à la racine de votre serveur et éditez le pour le faire pointer vers le répertoire d’installation.
Configuration
Renommez le fichier include/config.ren.php en include/config.php et modifiez les paramètres suivants :
- $CONF[« lang_mail »] : indiquez ici la langue dans laquelle vous voulez recevoir les mails d’alerte. Un fichier <lang_mail>.mail.php doit exister dans le répertoire include/lang/.
- $CONF[« lang_page »] : indiquez ici la langue dans laquelle vous voulez afficher les pages d’erreur affichées à vos visiteurs. Un fichier <lang_page>.page.php doit exister dans le répertoire include/lang/.
- $CONF[« url_site »] : adresse de votre site web.
- $CONF[« nom_site »] : nom de votre site web.
- $CONF[« redirection »] : URL par défaut pour la redirection.
- $CONF[« mail »] : adresse mail par défaut pour l’envoi des rapports.
- $CONF[« rapport »] (booléen) : indique si les rapports par mail doivent être envoyés ou non.
- $CONF[« redirige »] (booléen) : indique si les erreurs doivent être redirigées ou non.
Il est également possible de configurer la redirection et l’envoi de mails pour chaque code erreur :
- tableau $RAPPORT : définit pour chaque code erreur si un mail doit être envoyé ou non. Si un code erreur n’est pas trouvé dans le tableau, c’est la valeur de $CONF[« rapport »] qui est prise en compte.
- tableau $MAILS : définit pour chaque code erreur l’adresse mail de destination du rapport. Si un code erreur n’est pas trouvé dans le tableau, c’est la valeur de $CONF[« mail »] qui est prise en compte.
- tableau $REDIRIGE : définit pour chaque code erreur si le visiteur doit être redirigé ou si une page d’erreur doit être générée. Si un code erreur n’est pas trouvé dans le tableau, c’est la valeur de $CONF[« redirige »] qui est prise en compte.
- tableau $REDIRECTION : définit pour chaque code erreur l’URL de redirection du visiteur. Si le code erreur n’est pas trouvé dans le tableau, c’est la valeur de $CONF[« redirection »] qui est prise en compte.
Enfin, vous pouvez définir des exclusions pour ne pas recevoir de rapports dans certains cas particuliers :
- tableau $EXCLUSION : si l’URL demandée par le visiteur vérifie une expression régulière (format ereg) saisie dans ce tableau, le rapport n’est pas envoyé.
Dans les URL de redirection, vous pouvez utiliser les balise {CODE_ERREUR} et {LANG} qui seront remplacées respectivement par le code erreur et la valeur de $CONF[« lang_page »] ainsi que tous les champs de la super-globale $_SERVER (par exemple, {REQUEST_URI} pour $_SERVER[« REQUEST_URI »]).
Personnalisation des pages d’erreur
Les pages d’erreur sont générées à partir de modèles situés dans le répertoire templates. Lorsqu’une erreur survient, le modèle correspondant à son code est chargé (ou le modèle par défaut s’il n’y a pas de modèle correspondant au code).
Ces modèles sont des pages HTML contenant des balises spécifiques qui sont traitées lors de la génération des pages.
Les balises que vous pouvez utiliser sont les suivantes :
- {PAGE_TITRE} : sera remplacée par le titre associé au code erreur dans le tableau PAGE_TITRE du fichier de langue.
- {PAGE_ERREUR} : sera remplacée par le nom d’erreur associé au code erreur dans le tableau PAGE_ERREUR du fichier de langue.
- {PAGE_DESC} : sera remplacée par la description associée au code erreur dans le tableau PAGE_DESC du fichier de langue.
- {NOM_SITE} et {URL_SITE} : seront remplacées par les valeurs du fichier de configuration.
- {CODE_ERREUR} : sera remplacée par le code erreur.
- {ADMIN_PREVENU}, {IBD_ERRORS_MANAGER} : seront remplacées par les messages du tableau PAGE_MESSAGES du fichier de langue.
- tous les champs de la super-globale $_SERVER (par exemple, {REQUEST_URI} pour $_SERVER[« REQUEST_URI »]).
Vous pouvez créer des balises supplémentaires en ajoutant des entrées dans le
tableau PAGE_MESSAGES du fichier de langue.
- 25/03/2007 v1.1 :
- Ajout des variables serveur dans les templates d’URL et de page
- Ajout d’une liste d’exclusions sur les URL demandées
- Adresse mail par défaut
- URL de redirection par défaut
- Doc sur les templates
- Choix des erreurs à signaler par mail
- Choix des erreurs à rediriger
- Possibilité de recevoir ou non les rapports si pas de référant
- Config « failsafe »
- 27/03/2010 v1.0 : première version publique.
- mapping URI en erreur => URI relocalisée (avec un 301/302)
- détermination de la langue des pages d’après le navigateur
- rapports détaillés (pour chaque type d’erreur)
- stockage des erreurs dans une base SQL (avec exclusions en base)
- pour la version SQL : envoi de rapport uniquement s’il n’y en a pas déjà un en base avec même URI et référant
- permettre l’ajout de templates $var[$code_erreur] (tableau contenant la liste
des tableaux à traiter) - exclusion si pas de référant
- exclusion si l’agent est un bot
- exclusion en fonction du référant et de l’agent
- lien page précédente
- paramètres pour tester erreurs
- script de vérification de la config (+ fonctions ?)
- script d’installation
- gestion d’erreurs non traitées => absolument aucun traitement (renvoi page vide + header correspondant au code erreur)