Een eigen 404 pagina

Het is op eenvoudige wijze een skelet te maken dat wordt weegegeven wanneer foutcode 404 optreedt, omdat een pagina niet werd gevonden.

Foutpagina 404

Wanneer iemand op het web navigeert, kan het gebeuren dat hij een bladzijde oproept die niet bestaat. Wanneer de webserver het verzoek ontvangt, antwoordt deze met een specifieke webpagina (om aan te geven dat de gevraagde bladzijde niet werd gevonden). Deze bladzijde wordt door de eigenaar van de site gedefineerd (of standaard met de server geleverd) en bevat meestal een bericht met uitleg en de responsecode « 404 » van het HTTP protocol, vanwaar de naam «pagina 404».

En wat doet SPIP ermee?

Het kan ook gebeuren dat een gebruiker om een pagina vraagt die bestaat, maar om een of ander reden geen inhoud weergeeft. Als we bijvoorbeeld in een SPIP-site zouden vragen naar http://mijn-site.nl/spip.php?article520 en het artikel 520 (nog) niet bestaat — of nog niet gepubliceerd is —, zal SPIP op soortgelijke wijze een foutboodschap geven. We kunnen dit een «pseudo 404 fout» noemen.

SPIP doet dit feitelijk. Hij geeft een 404 pagina door aan de hand van een skelet. Om die pagina aan te passen, kun je hetzelfde doen als de aanpassing van ieder ander skelet. Je moet je eigen bestand 404.html plaatsen in je map met aangepaste skeletten (waarover je meer leest in artikel «Où placer les fichiers de squelettes ?»).

Instelling van SPIP

SPIP weet niet altijd wanneer zo’n «pseudo 404 fout» en we moeten hem dat dan ook vertellen in ieder skelet dat die fout zou kunnen genereren.

Per conventie zal SPIP uitsluitend een 404 fout retourneren wanneer de door het skelet gegenereerde inhoud volledig leeg is.

Het principe is uiterst simpel. Bijvoorbeeld:

  • het zoekskelet toont wanneer er geen resultaten zijn opnieuw de zoekpagina; waarschijnlijk met een melding dat er niets werd gevonden. Maar er is geen «pseudo 404 fout».
  • maar het skelet van een artikel geeft wél een «pseudo 404 fout» wanneer het artikel niet werd gevonden (of niet gepubliceerd is).

Wanneer we nogmaals het voorbeeld van het niet gepubliceerde artikel 520 nemen met de URL http://mijn-site.nl/spip.php?article520 moet het skelet voor een artikel alsvolgt zijn opgebouwd:

<BOUCLE_hoofdlus(ARTICLES) {id_article}>
.... HTML, inclusief de heading ...
</BOUCLE_hoofdlus>

De lus _hoofdlus geeft geen resultaat wanneer om een niet bestaand of niet gepubliceerd artikel wordt gevraagd. Het resultaat is dus een lege bladzijde, SPIP genereert een foutboodschap en retourneert een «pseudo 404 fout».

Instelling van de webserver

Deze procedure is van toepassing op «normale» 404-fouten, dus bij afwezigheid van een door de gebruiker opgevraagd bestand.

De eenvoudigste methode is het gebruik maken van de functionaliteit van het door SPIP geleverde .htaccess bestand. Je hernoemt daarvoor het bestand dat standaard wordt meegeleverd onder de naam htaccess.txt in .htaccess [1]. En dat is alles!

Let op! Het kan gebeuren dat hosting providers het gebruik van het bestand .htaccess onmogelijk maken. In dat geval moet je contact met die provider opnemen om het probleem op te lossen.

Een écht lege pagina produceren

In sommige omstandigheden wil je wel een lege pagina retourneren, zonder dat dir resulteert in een «pseudo 404 fout». Het volstaat om

#HTTP_HEADER{content-type:text/html}

in de pagina te laten verschijnen.

Voetnoot

[1Mogelijk kun je deze aanpassing niet op de thusicomputer of laptop dien, maar moet het op de webserver gebeuren, bijvoorbeeld door middel van een FTP client of de interface die je webprovider aanbiedt.

Auteur Hanjo Gepubliceerd op: Aangepast: 21/03/23

Vertalingen: català, English, Español, français, italiano, Nederlands