Une page d`erreur 404 en cas de requête invalide - Sarka-SPIP

Transcription

Une page d`erreur 404 en cas de requête invalide - Sarka-SPIP
Une page d'erreur 404 en cas de requête invalide
Extrait du Sarka-SPIP
http://site.sarka-box.net
Une page d'erreur 404 en cas
de requête invalide
- Sarka-Story - Sarka-SPIP 1.1.2 - Nouvelles fonctionnalités -
Date de mise en ligne : lundi 12 décembre 2005
Sarka-SPIP
Copyright © Sarka-SPIP
Page 1/7
Une page d'erreur 404 en cas de requête invalide
Description
Jusqu'à présent, un visiteur demandant à Sarka-SPIP d'afficher un objet (article, rubrique ou auteur) qui n'existe pas
tombait sur horrible page blanche (oh, l'angoisse) mentionnant : "il n'y a pas d'article/d'auteur/de rubrique à cette
adresse".
Prenons le cas du site http://sylvain.bellego.free.fr. Pendant plusieurs mois, ce site a hébergé des dizaines de pages
contenant des informations sur les sciences de l'éducation, référencées par les moteurs de recherche. Lorsque les
articles et les rubriques contenant ces ressources universitaires ont été supprimées de ce site, pour être hébergés sur
un nouveau site, le contenu de ces pages a été "remplacé" par : "il n'y a pas de truc à cette adresse"... contenu indexé
par les moteurs de recherche, et résultat déroutant pour les visiteurs "victimes" de l'inertie de ces moteurs.
Il m'a donc semblé utile de remplacer ce type d'avertissement par une page d'erreur 404, dont le titre (title) contient la
mention de cette erreur, avec un lien vers le plan du site pour orienter les visiteurs égarés.
Fichiers affectés
fichiers à créer :
•
•
404.html
404.php3
fichiers à modifier :
•
•
•
•
article.html
rubrique.html
auteur.html
local_xx.php3
mise en oeuvre
création du couple de fichiers 404.html/php3
La page à afficher lors d'une requête invalide est créée par le couple de fichiers 404.html/php3. Le fichier 404.php3
contient les lignes suivantes :
Copyright © Sarka-SPIP
Page 2/7
Une page d'erreur 404 en cas de requête invalide
<?php
$fond = "inclusions/404";
$delais = 24 * 3600;
include ("inc-public.php3");
?>
Copyright © Sarka-SPIP
Page 3/7
Une page d'erreur 404 en cas de requête invalide
Le fichier 404.html génère une page semblable aux autres pages du squelette, avec le bandeau, le menu en colonne
de gauche, un texte d'erreur et un lien vers le plan du site. L'élément le plus important de cette page est son titre, qui
permet aux moteurs de recherche d'identifier une page d'erreur 404. En voici le code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
[404] <:page_non_trouvee:>
<INCLURE(inclusions/bandeau.php3)>
<INCLURE(inclusions/bande-chemin.php3)>
<INCLURE(inclusions/bloc-gauche.php3)>
<!-- ================================== BLOC CENTRAL
================================== -->
404 - <:erreur:>
<:url_fausse:>
<:plan_site:>
<INCLURE(inclusions/footer.php3)>
Copyright © Sarka-SPIP
Page 4/7
Une page d'erreur 404 en cas de requête invalide
modification des fichiers de langue
La page 404.html utilise de nouvelles chaînes de caractères personnalisées (cf. Internationalisation du squelette pour
en savoir plus) :
•
•
•
'page_non_trouvee' dans le titre
'erreur' comme titre du message d'explication
'url_fausse' comme message d'explication
Les traductions en français, englais et espagnol sont les suivantes :
chaîne
trad. fr
trad. en
trad. es
Page non trouvée
Page not found
Página no existante
L\'adresse URL que vous demandez n\'existe pas. Le plan du
The requisted url adress was not found. The site
La direccion que estas pidiendo no existe. El mapa del sitio
site peut vous aider à trouver l\'information recherchée.
map can help you to find the requested information.
puede ayudarte a encontrar la informacion que estas buscando.
erreur
error
error
page_no
n_trouve
e
erreur
url_fauss
e
Les fichiers de langue ont donc été modifiés pour tenir compte de ces nouvelles chaînes de caractères. A titre
d'exemple, voici les lignes ajoutées au fichier local_fr.php3 :
'page_non_trouvee' => 'Page non trouvée',
'url_fausse' => 'L\'adresse URL que vous demandez n\'existe pas. Le plan du site peut vous aider à trouver
l\'information recherchée.',
'erreur' => 'erreur'
Modification des pages article, rubrique et auteur
Pour faire en sorte que la page d'erreur générée par le couple de fichiers 404.html/php3 s'affiche en réponse à une
demande d'article, de rubrique ou d'auteur inexistant, il faut remplacer la chaîne de caractères "pas d'objet" par
l'inclusion de la page d'erreur dans les fichiers article.html, auteur.html, imprimer.html et rubrique.html.
A titre d'exemple, la structure du fichier article.html est donc la suivante :
Copyright © Sarka-SPIP
Page 5/7
Une page d'erreur 404 en cas de requête invalide
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<BOUCLE_article_principal(ARTICLES) {id_article}>
<!-- affichage de l'article -->
</BOUCLE_article_principal>
<INCLURE(inclusions/404.php3)>
<//B_article_principal>
Copyright © Sarka-SPIP
Page 6/7
Une page d'erreur 404 en cas de requête invalide
Ainsi, la page d'erreur s'affiche lorsque le visiteur demande un article qui n'existe pas.
Copyright © Sarka-SPIP
Page 7/7