Explications
Je vais vous expliquer ici comment faire pour créer une page d'erreur personnalisée,
Exemple : allez sur
http://www.google.com/dkljd, ça va vous afficher une erreur 404, ou alors quand le Site est saturé, c'est l'erreur 500.
C'est un truc assez court, mais c'est bien pratique !
Matériel nécessaire :
des ciseaux,
un crayon,
de la colle,
une gomme,
un hébergeur qui accepte le php et les .htaccess.
Créez maintenant un fichier .htaccess que vous placerez à la racine de votre site, et insérez ceci : (en changeant bien sûr,
http://www.google.com par l'adresse de votre site web)
Code : Apache - Afficher / masquer les numéros de ligneErrorDocument 400
http://www.google.com/400.phpErrorDocument 401
http://www.google.com/401.phpErrorDocument 402
http://www.google.com/402.phpErrorDocument 403
http://www.google.com/403.phpErrorDocument 404
http://www.google.com/404.phpErrorDocument 405
http://www.google.com/405.phpErrorDocument 500
http://www.google.com/500.phpErrorDocument 501
http://www.google.com/501.phpErrorDocument 502
http://www.google.com/502.phpErrorDocument 503
http://www.google.com/503.phpErrorDocument 504
http://www.google.com/504.phpErrorDocument 505
http://www.google.com/505.phpMettez les liens en absolu pour l'instant, nous allons voir dans quel cas les utiliser en relatif.
C'est bien beau les 400, 401, 402, 403, 404, 500... mais ça veut dire quoi ?
400 : échec de l'analyse HTTP
401 : mauvais pseudo/mdp dans le .htaccess
402 : le client doit reformuler sa demande avec les bonnes données de paiement.
403 : requête interdite
404 : page non trouvée
405 : méthode non autorisée
500 : erreur interne au serveur ou serveur saturé
501 : le serveur ne supporte pas le service demandé
502 : mauvaise passerelle
503 : service indisponible
504 : trop de temps à la réponse
505 : version HTTP non supportée
Maintenant, vous devez vous dire : "je mets quoi dans 401.php... ?".
Vous y mettez ce que vous voulez.
Exemple pour 401.php : "vous avez tapé un mauvais pseudo / password".
Exemple pour 404.php : "page non trouvée".
Vous
l'aurez compris, les erreurs en 400 sont des erreurs du client, et les
500, du serveur, je vous laisse mettre en forme tout ça !
Le
problème, c'est que ça va renvoyer vers une autre erreur : l'erreur 200
(page qui s'est correctement chargée) ; donc, je ne sais pas si on peut
l'appeler "erreur".
Donc, avec les sites de référencement ayant
un robot, comme Google ou MSN Search, il y a un léger problème : le
moteur de recherche n'est pas en capacité de distinguer si la page est
une page d'erreur ou non, il affichera alors plein de liens vers des
pages d'erreurs lors d'une recherche.
Code : Apache - Afficher / masquer les numéros de ligneErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 402 /402.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 405 /405.php
ErrorDocument 500 /500.php
ErrorDocument 501 /501.php
ErrorDocument 502 /502.php
ErrorDocument 503 /503.php
ErrorDocument 504 /504.php
ErrorDocument 505 /505.php
Vous pouvez également faire un petit message, sans créer une nouvelle page, comme ceci :
Code : Apache - Afficher / masquer les numéros de ligneErrorDocument 400 "Echec de l'analyse HTTP"
ErrorDocument 401 "Mauvais pseudo/password"
ErrorDocument 402 "Le client doit reformuler sa demande avec les bonnes données de paiement."
ErrorDocument 403 "..."
ErrorDocument 404 ""
ErrorDocument 405 ""
ErrorDocument 500 ""
ErrorDocument 501 ""
ErrorDocument 502 ""
ErrorDocument 503 ""
ErrorDocument 504 ""
ErrorDocument 505 ""
Vous l'aurez compris : entre les guillemets, vous devez mettre le message d'erreur.
Mais
c'est énervant de devoir créer une nouvelle page à chaque fois ! Eh
bien vous pouvez en créer une seule qui contienne toutes les erreurs
avec du php ; regardez :
(.htaccess)
Code : Apache - Afficher / masquer les numéros de ligneErrorDocument 400 /erreur.php?erreur=400
ErrorDocument 401 /erreur.php?erreur=401
ErrorDocument 402 /erreur.php?erreur=402
ErrorDocument 403 /erreur.php?erreur=403
ErrorDocument 404 /erreur.php?erreur=404
ErrorDocument 405 /erreur.php?erreur=405
ErrorDocument 500 /erreur.php?erreur=500
ErrorDocument 501 /erreur.php?erreur=501
ErrorDocument 502 /erreur.php?erreur=502
ErrorDocument 503 /erreur.php?erreur=503
ErrorDocument 504 /erreur.php?erreur=504
ErrorDocument 505 /erreur.php?erreur=505
Après, on va voir quelle est l'erreur qu'on affiche par rapport à la valeur du GET erreur.
(erreur.php)
Code : PHP - Afficher / masquer les numéros de ligneswitch($_GET['erreur']){
case '400':
echo 'Echec de l\'analyse HTTP';
break;
case '401':
echo 'Le pseudo et/ou le mot de passe n\'est pas correct !';
break;
case '402':
echo 'Le client doit reformuler sa demande avec les bonnes données de paiement.';
break;
case '403':
echo 'Requête interdite !';
break;
case '404':
echo 'La page n\'existe pas ou n\'existe plus !';
break;
case '405':
echo 'Méthode non autorisée';
break;
case '500':
echo 'Erreur interne au serveur ou serveur saturé';
break;
case '501':
echo 'Le serveur ne supporte pas le service demandé';
break;
case '502':
echo 'Mauvaise passerelle';
break;
case '503':
echo ' Service indisponible';
break;
case '504':
echo 'Trop de temps à la réponse ';
break;
case '505':
echo 'Version HTTP non supportée ';
break;
default:
echo 'Erreur !!';
}
?>
--------------------------------------------------------------------------------
Et voilà : ce n'est pas plus beau comme ça ?
Bien