| INFO D'UNE ERREUR 404 |
Outils pour webmaster. Trucs et astuces en code HTML et JavaScript : améliorer son site internet
Descriptif : Même lorsque tous vos liens auront été vérifiés en local, vous n'êtes pas à l'abri d'une erreur une fois vos pages transférées chez votre hébergeur. Une faute courante est lorsque vous avez écrit le nom d'un fichier en majuscule et que le lien vers celui-ci est en minuscule. Si Windows admettra majuscule et minuscule indifféremment, ce ne sera pas le cas des serveurs Unix qui sont la majorité des hébergeurs. Dans un autre cas, il se peut aussi que l'une de vos pages soit endommagée ou effacée accidentellement.
Le meilleur moyen d'être informé qu'un visiteur a affiché la mortelle page Erreur
404 c'est qu'un mail vous soit envoyé automatiquement en vous indiquant :
- La provenance.
- La page incriminée.
- Le navigateur de l'utilisateur.
- Son adresse IP.
- Son nom de domaine.
Exemple :
Mise en oeuvre : Votre hébergeur doit disposer de l'option PHP. Il vous faudra alors créer un fichier .htaccess à placer à la racine de votre site et qui contiendra :
ErrorDocument 404 /erreur404.php |
Ce fichier ne peut être nommé ainsi sous Windows. Il faudra le sauvegarder en htaccess.txt,
le transférer en ASCII sur votre site puis le renommer avec votre client
FTP à partir de votre hôte en .htaccess
Il se peut que vous ne voyiez pas ce fichier sur votre serveur car le client FTP le
considère comme un fichier système et le cache. Allez dans les options d'affichage de
votre client FTP afin de les modifier et de pouvoir visualiser votre fichier .htaccess.
Puis, il vous faudra créer un fichier erreur404.php à placer à la racine de votre site et qui contiendra :
| ERREUR
404 Un e-mail va être envoyé au webmaster du site pour qu'il corrige le problème. <? $to="votre_mail@votre_site.com"; $sujet="ERREUR 404 sur VOTRE SITE."; if(empty($HTTP_REFERER)) { $provenance="Pas de lien intermédiaire, connexion directe"; } else { $provenance=$HTTP_REFERER; } $message="\nUne erreur 404 s'est produite sur le site VOTRE SITE.\n\nProvenance : ".$provenance."; Page : ".$SCRIPT_URI."\nNavigateur : $HTTP_USER_AGENT\nAdresse IP : http://$REMOTE_ADDR\nNom de domaine : ".gethostbyaddr($REMOTE_ADDR)."\n"; @mail($to,$sujet,$message,"FROM:Erreur404"); ?> |
Remarque :
- Les fichiers ci-dessus peuvent être créés avec NotePad.
- Cette fonction ne semble pas aimer les aspirateurs de sites comme WebCopier.
La boîte aux lettres du webmaster a explosé avec la reception de 1700 mails suite à la
manoeuvre d'aspiration d'un surfeur. Voir à ce propos le tableau des liens en bas de
page.
- Vous pouvez vous servir de cet exemple pour traquer d'autres erreurs (401, 402, 403, 405
etc)
- Après le code PHP, vous pouvez ajouter du HTML afin d'afficher une page au visiteur.
- Code provenant du site www.amen.fr
Ajout :
- Certaines fonctions connues ne sont pas à proprement parler des erreurs sur votre site.
Par exemple, le navigateur d'un visiteur qui sera mal configuré pour lire le JavaScript
ou le JAVA, peut provoquer une erreur 404. Pour limiter le nombre de
mails aux seul valides, ajouter les lignes (en gras) de codes ci-dessous.
| <? $result=1; if (preg_match("'DigExt'",$HTTP_USER_AGENT)) $result=0; if (preg_match("'votre_application_JAVA'",$SCRIPT_URI)) $result=0; if (preg_match("'cltreq.asp'",$SCRIPT_URI)) $result=0; if (preg_match("'owssvr.dll'",$SCRIPT_URI)) $result=0; if ($result==1){ $to="votre_mail@votre_site.com"; $sujet="ERREUR 404 sur VOTRE SITE."; if(empty($HTTP_REFERER)) { $provenance="Pas de lien intermédiaire, connexion directe"; } else { $provenance=$HTTP_REFERER; } $message="\nUne erreur 404 s'est produite sur le site VOTRE SITE.\n\nProvenance : ".$provenance."; Page : ".$SCRIPT_URI."\nNavigateur : $HTTP_USER_AGENT\nAdresse IP : http://$REMOTE_ADDR\nNom de domaine : ".gethostbyaddr($REMOTE_ADDR)."\n"; @mail($to,$sujet,$message,"FROM:Erreur404"); } ?> <html> <head> <title>Erreur 404</title> <meta name="robots" content="noindex, follow"> </head> <body> <p align="center"><font size="5" color="#FF0000"><strong>IMPOSSIBLE D'AFFICHER LA PAGE CORRECTEMENT</strong></font></p> <p align="center"><font size="2" color="#008000">Un mail a été envoyé au webmaster afin de corriger cette erreur.</font></p> <p align="center"><a href="http://www.VOTRE_DOMAINE.com/index.html">RETOUR</a></p> </body> </html> |
- N'oubliez pas } juste avant ?>
- Cette page contiendra uniquement des liens absolus : http://www.etc...
- N'ajoutez ces lignes une fois sûr qu'aucun autre élément dans la page n'est
susceptible de provoquer des erreurs (liens, images etc).
- Vous devrez, suivant la configuration de votre site, déterminer quels sont les
éléments à exclure du signalement de votre mail erreur 404. Par exemple, DigExt
est un module Internet Explorer servant à consulter une page hors ligne. Ce module
provoque un grand nombre d'erreur. Vous pouvez le faire figurer dans les lignes de
vérifications.
- Vous pouvez ajouter aussi cltreq.asp et owssvr.dll
correspondant à des visiteurs ayant le module du navigateur "Discuter" actif.
Copyright www.toulouse-renaissance.net ©