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 ?
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) :
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.
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é…
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.