HTTP-fout 404 opvangen
Je hebt de foutmelding hieronder vast wel eens gezien (of iets wat er op lijkt).
Hij staat bekend als HTTP-error 404.
De illustratie dateert uit de tijd van Windows XP.
Deze foutmelding ontstaat als geprobeerd wordt een niet (meer) bestaande bladzijde te openen.
Als je browser is ingesteld op het weergeven van "gebruikersvriendelijke"
foutmeldingen ziet het er wat vriendelijker uit. De strekking van de melding is echter hetzelfde: De pagina
kan niet worden getoond!
Het is nogal irritant om dit soort zaken tegen te komen. Het is daarom goed om te voorkomen dat deze
melding bij de bezoekers van jouw website verschijnt.
Een goede webmaster (m/v) zorgt er voor dat elke link op zijn website werkt. Het maakt niet uit of het links
binnen de website zelf zijn, of links naar andere websites. Hij/zij is dus constant bezig om te controleren
of alles nog werkt. Niet-werkende links worden gecorrigeerd als dat kan, anders worden ze zonder pardon verwijderd.
Websites worden door de tijd steeds groter. Het wordt dan ook steeds lastiger om alle links in een website
correct te houden. Je kunt dit bereiken door nooit een bladzijde van je site te verwijderen. Dat is echter
niet altijd mogelijk. Soms is de informatie zo verouderd dat die verwijderd móét worden. Als
een dergelijke bladzijde is geïndexeerd door een zoekmachine kan een bezoeker toch proberen binnen
te komen op een niet meer bestaande pagina.
Het optreden van een HTTP-fout 404 is dus niet 100% vermijdbaar. Daarom moet je er iets aan doen...!
Je kunt dit oplossen door het maken van een redirect. Dit is echter alleen mogelijk als de server waar je website wordt gehost het gebruik van redirects toestaat. Sommige providers ondersteunen het gebruik van redirects namelijk niet.
Voor de goede orde: het gaat op deze bladzijde om redirects van niet-gevonden pagina's op websites
die zelf niet verplaatst zijn. Het verhuizen van je website van de ene provider naar de andere
hoeft geen 'HTTP-error 404 problemen' op te leveren.
Als de URL van je website niet verandert is er helemaal geen probleem.
Verhuisproblemen met websites
treden eigenlijk alleen op als de URL verandert. Dat kun je opvangen door op de "oude" webserver
één enkele bladzijde achter te laten, waarop je meldt dat je verhuisd bent. Daarbij is het
mogelijk om automatisch door te schakelen naar de nieuwe URL. Kijk bijvoorbeeld eens op een verdwenen pagina van mijn site
Webmasterij.
De aanpak die daar is gebruikt staat beschreven in het item "Automatisch van pagina wisselen".
- Het hangt af van de host, de server waar jouw website op draait, of de hier beschreven aanpak mogelijk is.
Bij servers die draaien onder UNIX of een daaraan verwant Operating System is het meestal mogelijk. Bij
servers die onder Windows draaien kan het meestal niet.
Raadpleeg bij twijfel je hosting-provider.
- Als je host draait met UNIX o.i.d. is de aanpak betrekkelijk eenvoudig:
- Maak een HTML-pagina aan die je wilt laten zien in plaats van de 404-foutmelding. Bijvoorbeeld: verdwenen.htm.
- Maak (bijvoorbeeld met behulp van Kladblok) een bestand aan en noem dat .htaccess
Let op: de filenaam begint met een punt! - Deze file bevat één regel tekst:
ErrorDocument 404 https://www.jouwwebsite.nl/verdwenen.htm
Opmerking: De regel in .htaccess van deze website luidt:>
ErrorDocument 404 https://home.hccnet.nl/s.f.boukes/verdwenen.htm - Upload beide bestanden naar je webserver. Als er nu geprobeerd wordt om een niet bestaande pagina
te benaderen wordt verdwenen.html geopend in plaats van het niet-bestaande ding.
Meestal moet je de twee files in de root van je website neerzetten. Dat kan per provider anders zijn.
- Als je host draait met Windows is de aanpak anders:
- Maak een HTML-pagina aan die je wilt laten zien in plaats van de 404-foutmelding en upload die naar de root van je website op je webserver. Meestal heet die file 404.html.
- Nu moet je dat bestand aanmelden als redirect voor de 404-foutmelding. Bij sommige providers kun je dat doen in een beheerprogramma. Bij andere providers regelt het systeembeheer dat voor je.
- Om dit te kunnen gebruiken is het nodig dat je provider het gebruik van .htaccess beschikbaar stelt. Dat zal meestal het geval zijn als je provider draait met UNIX-servers en/of gebruik maakt van het web-server pakket Apache. Met andere web-server software kan het ook, maar is het vaak erg lastig voor de gewone gebruikers.
Opmerking:
Op de hier beschreven wijze kun je redirects maken voor alle mogelijke HTTP-fouten. Voor de volledigheid
staat hieronder een lijstje van veel voorkomende HTTP-foutnummers, waar dit nuttig zou kunnen zijn:
302 - Redirect 400 - Bad Request 401 - Authorization Required 402 - Payment Required 403 - Forbidden 404 - File Not Found 405 - Method Not Allowed 406 - Not Acceptable 407 - Proxy Authentication Required 408 - Request Time-out 409 - Conflict 410 - Gone |
411 - Length Required 412 - Precondition Failed 413 - Request Entity Too Large 414 - Request-URI Too Large 415 - Unsupported Media Type 500 - Internal Server Error 501 - Method Not Implemented 502 - Bad Gateway 503 - Service Temporarily Unavailable 504 - Gateway Time-out 505 - HTTP Version Not Supported |
HTTP-fout 403 ('Verboden toegang') kun je overigens ook op een andere manier omzeilen. Zie daarvoor het item "HTTP-fout 403 opvangen".
Opmerking:
Meer informatie over HTTP-fouten is te vinden in het item
"Over de HTTP-statuscodes". Een
overzicht van de statuscodes van HTTP vind je in dit document.
Behalve HTTP-fouten opvangen kun je nog veel meer met .htaccess doen:
Delen van je website beveiligen met een username en een password, bepaalde bezoekers uitsluiten, enzovoort.
Tutorials voor het gebruikt van .htaccess vind je onder andere op de site van
Apache HTTP Server Project.