Gestion de l'erreur 404

 

« 404 Not Found »

Comment éviter cela à vos visiteurs ?

Selon l'hébergeur

Beaucoup d'hébergeurs gratuits ne permettent pas de gérer les erreurs...

Les hébergeurs "pro" le permettent, grâce au fichier .htaccess, et bien plus encore.

Exemple de page d'info d'hébergeur

Gestion des erreurs 404 par .htaccess

Voir la page : fichier .htaccess

ErrorDocument 404 /absolue/ou/relative/page_404_perso.htm

A défaut de page 404 personnelle, on peut indiquer la page d'accueil.

L'URL apparente de la page d'erreur

Imaginez, vous avez cette page d'erreur : http://domaine.fr/e404.htm.
Un internaute appelle la page http://domaine.fr/chemin/inexistant.htm.
La page d'erreur lui est envoyée, mais sous quel nom ?
Ce peut-être sous le nom http://domaine.fr/chemin/inexistant.htm !
Tous les liens codés en relatif sur la page deviennent erronés dans le navigateur.
par exemple le lien accueil.htm qui,
sur http://domaine.fr/e404.htm donnerait http://domaine.fr/accueil.htm,
donne sur cette page à fausse URL : http://domaine.fr/chemin/accueil.htm !
Et votre visiteur est alors tout à fait perdu.

Vérifiez cela. Il y a au moins 2 remèdes simples, au choix :

Écrire les liens en absolu (sans oublier la CSS éventuelle).

Insérer une balise <base...> dans l'entête de la page d'erreur.

<base href="http://domaine.fr/e404.htm">

Page d'erreur personnalisée

Voir en exemple l'ancienne page d'erreur 404 du site, ou mieux, cliquez "page inexistante".

Réorienter le visiteur

- Grâce à un menu et des liens utiles.

- Par une adresse alternative proposée pour chaque erreur. Tout au moins dans le cas des erreurs prévisibles parce que répétitives.

Leur liste est insérée dans un script. Cette liste est mise à jour facilement si un mail est envoyé à chaque erreur (sauf celles déjà dans la liste). [Cf. www.ppan.net par exemple]

Être prévenu des liens rompus

Plusieurs solutions pour connaître l'origine des erreurs 404 :

Page d'erreur en PHP :
[ Page 404 personnalisée + mail au webmestre. ]

Scripts CGI enregistrant les URL générant des erreurs 404 :

Les causes des erreurs 404

Selon mes stat personnelles.

I) La faute du webmestre

Simple erreur du webmestre

On vient de faire une modification de lien, de nom d'un fichier ou répertoire, d'arborescence du site...
Il faut certes vérifier avec Xenu ou autre, mais les erreurs de casse (Majuscule minuscule) peuvent passer inaperçues. Il faudrait théoriquement tout vérifier à la main une fois sur le serveur... On n'est pas à l'abri d'un oubli. Ces erreurs sont vite repérées avec un script informant des erreurs.

Log : Le Referer est en général notre propre site. Chercher qui, du lien dans le referer ou du nom de la cible, est mal écrit.

< 1 % En fait, fréquence variable selon l'avancement des corrections : ces erreurs, +/- fréquentes au début, disparaissent, si on corrige, bien sur.

Ancienne page changée d'adresse

Les liens sur d'autres sites ou annuaires deviennent caduques... Contacter leur webmestre.

Certains robots de moteur de recherche demandent d'anciennes adresses pendant des mois ou des années...
Cela devrait théoriquement être réglé au niveau d'une "redirection permanente" (et à laisser en place indéfiniment). Ce n'est pas toujours fait...

Log : montre le passage d'un "Bot" (robot) ou désigne le referer à faire corriger.

~ 61 % Dont une grosse moitié correspondant à des robots persévérants et une petite à des hotlinks sur des forums vers d'anciens fichiers JPG (27 % du total de mes 404).

II) La faute d'un "utilisateur intermédiaire"

Lien erroné sur un site

Log : Le Referer indique la source...

~ 1 % Plutôt rare (Vu une fois, une erreur de casse : il avait respectueusement mis une majuscule à mon initiale dans l'URL)

Inclusion de la ponctuation suivant un lien sur un forum...

Sur les forums Usenet, par exemple, on indique des liens et on les fait parfois suivre d'une ponctuation, comme à la fin de toute phrase :-) ou bien on les met entre parenthèses. Il faut penser à laisser un espace avant et après l'URL (ou un saut de ligne), sinon le point ou la parenthèse risque d'être inclus !

Dans d'autres situations que les forums on est aussi confronté à un logiciel qui délimite lui-même une URL et en fait un lien. Même problème...

Log : Pas de Referer dans mes rares cas.

~ 1 % Rare.

III) La faute d'un logiciel

"MSOffice..." et "_vti..."

Ces deux liens, frères inséparables, sont lié à l'utilisation par l'internaute, pendant son "surf", d'un certain logiciel MS qui cherche sur le site un script de dialogue... inexistant.

Log : pas de referer.

~ 14 %

"SlurpConfirm404" et autres

Plusieurs moteurs de recherche envoient des requêtes de fichiers inexistants pour tester la réponse du site. Pour reconnaître la page 404 et ne pas l'indexer, par exemple, ou pour reconnaître les sites de spam qui ont réponse à tout et fabriquent sur mesure à chaque requête une page attrape-nigaud (et pleine de pub). (Il n'y a pas que Slurp, autre exemple, explicite mais vrai : /what-do-you-return-for-an-inextant-url-1151824494)
Il n'y a rien de spécial à faire. La bête page d'erreur 404 suffit. Si on a un script qui envoi un mail à chaque erreur, pour l'éviter on inscrit cette requête dans la liste évoquée ci-dessus.

	"SlurpConfirm" => "",

Log : pas de referer.

~ 3 % Fréquence irrégulière, parfois requête isolée, parfois salve d'une dizaine.

Lien mal délimité

Accolé à des chaînes d'origines indéterminées.

Dans ce mauvais exemple il y a "ajout" de 7 arguments : /liens/index.htm&&DI=293&IG=cd7ca5[...]&POS=5&CM=WPU&CE=5&CS=AWP&SR=5 (toutes les esperluettes étaient codées &amp; dans le Log). (Pas de Referer, annonce un user agent banal mais ne télécharge pas les CSS de la page 404. Hôte rare : 4 hits en 3 semaines, ne charge que les pages, pas les .css).

< 1 % De temps en temps.

Lien mal recomposé par un robot (aspirateur mal conçu...)

Exemples : / http://index.htm ; avec un répertoire en trop : /jpg/jpg/logos/favicon.ico ou le plus souvent en moins. (Il faut vérifier l'absence de lien erroné avant de retenir cette explication.)

Log : Voir l'Agent responsable.

12 %

Origine inconnue

Deux requêtes consécutives : /notified-NotifyUser-Warning-Page et /verify-NotifyUser-Warning-Page .

Log : Referer banal, navigation banale avec IE6.

< 1 %

Perte des majuscules

Certains robots semblent changer la casse et réduire les URL en minuscules.

Requête bizarre, quoique on retombe sur nos pieds : /iris/../jpg/virecoulon/iris-histrio-type-2_p.jpg . En fait, ce qui a fait échouer la requête (et toute les autres de la même visite - Agent : "PureSight") est la perte des majuscules.

Log : Le Referer est souvent un "translate".

< 1 %

IV) La faute de l'internaute

Log : pas de Referer dans ces cas.

URL mal écrit par l'internaute

Par exemple : /indix.htm ou /index.htlm

~ 1 %

URL inventé par l'internaute

- Recherche d'un fichier d'index inexistant. (Ce n'est pas codé erreur 404 mais 403)

Cela représente moins de 1 %.

- Exploration : exemple recherche de fichier inexistant "antigone.htm" parce qu'il existe sur mon site un fichier au nom de sa soeur "ismene.htm" (la fleur et... la fille d'oedipe).

< 1 %

URL de pirates

- Recherche de vulnérabilité.
Éventuellement avec essai d'introduction d'adresse à attaquer par déni de service

- Exemple de ce qui semble une tentative d'introduire des fichiers pour "défacer" un site en utilisant un plugins de IE (ou frontpage ?).
Cette requête /spk.txt a d'ailleurs été faite sur chacun de mes deux sites.

193.192.249.181 - - [30/Jul/2006:06:30:31 +0200] "PUT /spk.txt HTTP/1.0" 405 224
		 "-" "Microsoft Data Access Internet Publishing Provider DAV 1.1"
193.192.249.181 - - [30/Jul/2006:06:30:31 +0200] "GET /spk.txt HTTP/1.0" 404 4693
		 "-" "lwp-trivial/1.40"

< 1 %

 

Accueil Haut