Lot spip, Vol 282, Parution 57

Je souhaite gérer proprement toutes les erreurs « pages non trouvées » de mon site y compris les articles retirés du site publics mais encore référencés par Google ou d’autres sites ou moteurs

Il existe un contrib à ce sujet - http://www.spip-contrib.net/Gestion-propre-des-erreurs-404 - qui est un peu ancienne qui utilisait les fichiers d’appel en .php3 pour gérer les erreurs 404 en appelant un fichier 404.php3 qui redirigeait sur un fichier plan.html légèrement modifié qui au moyen d’une variable $error404 initialisée à « true » dans le fichier php3 gérait l’ajout, entre autres, de metatags et de messages d’erreur renseignant le visiteur et les moteurs de recherche.

Mon souci est d’initialiser cette variable et d’envoyer vers le bon squelette dans spip1.9.x sans fichier xx.php3 d’appel. Est-ce possible sans dupliquer complètement le plan.html dans un fichier 404.html?

D’autre part pour les « vraies » erreurs 404 la contrib suggère d’insérer une ligne : ErrorDocument 404 /404.php3 dans le .htaccess la syntaxe pour un 404.html dans la dossier « squelettes » devient-elle simplement ErrorDocument 404 /squelettes/404.html ?

Merci de votre réponse

Reynald Beaufort

Petit oubli de mettre la liste en destinataire :wink:

Hello

Pour ma part, chacune de mes pages SPIP est encadrée par une boucle
spécifiant la rubrique/l'article dans lequel on se trouve. Du coup,
quand l'id de la rubrique / article passé en paramètre pour l'appel de
la page est incorrecte, je tombe dans la boucle de remplacement si on
trouve rien, au sein de laquelle je fais appel à une page 404.

Ca donne un truc du style (de façon très simplifiée, et surtout de mémoire) :

<BOUCLE_ma_rub(RUBRIQUES){id_rubrique}>
<body>
<html>
</html
</body>
</BOUCLE_ma_rub>
<INCLURE{fond="404"}>
<//B_ma_rub>

C'est pas parfait je pense et ça ne gère pas tout, mais ça fonctionne
très bien chez moi.

--
Gratz

turquieeuropeenne a écrit :

Bonjour,

Je souhaite gérer proprement toutes les erreurs "pages non trouvées" de mon site y compris les articles retirés du site publics mais encore référencés par Google ou d'autres sites ou moteurs

Il existe des états d'erreurs autre que 404, il faudrait que tu cherches la liste et les descriptions.

[...]
D'autre part pour les "vraies" erreurs 404 la contrib suggère d'insérer une ligne : ErrorDocument 404 /404.php3 dans le .htaccess la syntaxe pour un 404.html dans la dossier "squelettes" devient-elle simplement ErrorDocument 404 /squelettes/404.html ?

Pourquoi tu n'essayes pas?
Tu nous tiens au courant.

Si tu appelles /squelettes/404.html, cela revient à afficher la page html seulement.
Si tu appelles 404.html (avec la réécriture d'URL, en principe), alors tu pourras gérer l'affichage de la page dans un squelette.

Je me trompe peut être.

A bientôt
Grégoire

Merci de votre réponse

Reynald Beaufort

Bonjour,

Si tu as la dernière version de SPIP (1.9.2c), dans le dossier dist, tu as le fichier 404.html.
Si tu veux faire le fichier 404.html avec ton design, tu crées un fichier 404.html dans ton dossier squelettes et tu y incorpores les boucles qui te sont adéquate.
Je ne sais plus si spip affiche le code de la page inexistante avec son id_article ou id_rubrique ou pas. Si c’est oui, alors je pense que tu peux récupérer cet id et dire que tu veux afficher l’article (ayant le mot clés 404) de la rubrique que tu veux…

Par exemple, tu es dans la rubrique 12, tu crées un article avec le mot clé 404, tu le mets en mode « proposé à la publication » (ou autre). Si dans cette rubrique, l’erreur 404 se fait (et que l’id est affiché dans l’url), tu mets a boucle RUBRIQUES{id_rubrique} puis sa boucle (ARTICLES) {id_rubrique} {titre_mot=404} {statut=propose} et cela affichera ton article en question.

Voilà le principe. Mais comme j’ai dit, il faut que l’id de l’élément manquant soit affiché dans l’url sollicité…

Le 08/01/08, Grégoire <gobmouch@online.fr> a écrit :

turquieeuropeenne a écrit :

Bonjour,

Je souhaite gérer proprement toutes les erreurs « pages non trouvées » de mon site
y compris les articles retirés du site publics mais encore référencés par Google
ou d’autres sites ou moteurs

Il existe des états d’erreurs autre que 404, il faudrait que tu
cherches la liste et les descriptions.

[…]
D’autre part pour les « vraies » erreurs 404 la contrib suggère d’insérer une
ligne : ErrorDocument 404 /404.php3 dans le .htaccess la syntaxe pour un
404.html dans la dossier « squelettes » devient-elle simplement ErrorDocument 404
/squelettes/404.html ?

Pourquoi tu n’essayes pas?
Tu nous tiens au courant.

Si tu appelles /squelettes/404.html, cela revient à afficher la page
html seulement.
Si tu appelles 404.html (avec la réécriture d’URL, en principe),
alors tu pourras gérer l’affichage de la page dans un squelette.

Je me trompe peut être.

A bientôt
Grégoire

Merci de votre réponse

Reynald Beaufort


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip.net/fr_article1054.html