Bereikbaar van 09:00 - 18:00 (ma-vrij)

403 forbidden: oorzaken en oplossingen

Door Hipex | 6 oktober 2020 |
  1. Nieuws & informatie
  2. Techniek
  3. 403 forbidden: oorzaken en oplossingen

Een 403 forbidden error is een foutcode die vaak getoond wordt op websites. Als je een foutcode krijgt is dit natuurlijk erg frustrerend.

De 403 forbidden foutcode lijkt op het eerste gezicht een zware foutcode omdat je website of pagina gewoon niet zichtbaar is. Toch is deze foutcode relatief eenvoudig op te lossen.

Hoe? Dat lees je in dit artikel.

403 forbidden: wat betekent het?

Laten we bij het begin beginnen en kijken wat de 403 foutcode betekent. De 403 foutcode is een HTTP-statuscode die je webbrowser ontvangt na contact te hebben gelegd met de webserver.

Normaal gesproken, als je website naar behoren werkt, krijgt de webpagina een statuscode van 200.

Je website werkt dus niet naar behoren als je de 403 forbidden melding te zien krijgt. De 403 forbidden error valt in de categorie ‘4xx - Client Error’, waartoe ook bijvoorbeeld de wat meer bekende 404-error valt.

Alle 4xx HTTP-foutcodes zijn antwoorden van je webserver die de cliënt laten weten dat het verzoek niet succesvol verwerkt kan worden.

De reden dat je de 403 melding krijgt is dus dat je server weet wat het moet doen, maar om onduidelijke reden niet kan uitvoeren.

403 forbidden oorzaken

Er kunnen meerdere oorzaken zijn van de 403 forbidden error. De meest voorkomende oorzaken zijn:

  • Een ontbrekend index.html of index.php bestand
  • Verkeerde rechten op bestanden of mappen
  • Een fout in de .htaccess of Nginx configuratie
  • Plugins die corrupt of niet compatible zijn

Afhankelijk van je webhoster, CMS en zelf gedane instellingen zijn er dus meerdere oorzaken van de 403 melding.

In sommige gevallen is het zelfs zo dat een 403 forbidden melding een bewuste keuze is. Dit is bijvoorbeeld het geval als jij of de beheerder van een website, bepaalde afbeeldingen niet publiekelijk wilt tonen.

Als je website niet beschikt over een index.html of een index.php bestand gaat je server tevergeefs op zoek naar deze bestanden.

Het kan ook zijn dat het bestand verkeerd is genoemd: deze bestandsnamen zijn namelijk ook hoofdlettergevoelig. Wees hier dus scherp op.

Een andere mogelijke oorzaak van bijvoorbeeld de ‘403 forbidden access is denied’ melding zijn verkeerd ingestelde rechten op een map of bestand.

Mocht je het nog niet weten: iedere map en bestand op de server heeft eigen bestandsrechten. Hiermee geef je aan of anderen deze gegevens mogen lezen, schrijven of uitvoeren.

De rechten zijn weergegeven als drie cijfers:

Via een programma als Filezilla kun je bij de bestanden op de webserver en kun je de bestandsrechten inzichten door met je rechtermuisknop te klikken op een bestand of map en dan onderaan op “bestandsrechten” te klikken.

Het schermpje wat je hierboven ziet, opent zich. Hier kun je de rechten van het bestand aanpassen. Als je vinkjes aan of uit klikt, zul je zien dat de drie cijfers automatisch mee veranderen.

Een andere oorzaak van de 403 foutmelding is een corrupte of foute .htaccess. Dit kan alleen als je webhoster bijvoorbeeld op Apache draait. Als je webhoster Nginx draait zul je geen .htacces bestand hebben, dan wordt er gebruik gemaakt van Nginx configuraties.

Een .htaccess bestand is een configuratiebestand wat op map-niveau ligt en waarin bepaalde instructies staan. Deze instructies geven aan hoe het binnenkomend verkeer op je website wordt afgehandeld.

Omdat dit bestand veel code/tekst kan bevatten, gaat het hier ook regelmatig mis. Verkeerde instellingen of regels ‘code’ verzaken vervolgens de 403 forbidden foutmelding.

In uitzonderlijke gevallen, maar het gebeurt af en toe toch, kan het zijn dat niet goed werkend plugins/extensies zorgen voor de 403 error. Vooral bij Wordpress websites die vaak volgestampt worden met plugins is dit een veelgeziene oorzaak van dit probleem.

403 forbidden oplossingen

Een ontbrekend index.html of index.php bestand

De oplossing is eigenlijk eenvoudig: maak een index.html of index.php bestand aan (zorg dat deze geen hoofdletters bevat) en zet deze in de mapdomains/domein.nl/public_html via de filemanager bij je webhoster of bijvoorbeeld via Filezilla.

Heb je wel een bestaand index bestand, maak hier dan voor de zekerheid even een backup van. Mocht er iets mis gaan met het wijzigen, verwijderen of toevoegen van je index.html/index.php bestand, dan heb je altijd een backup die je kunt terugzetten.

Verkeerde rechten op bestanden of mappen

In de meeste gevallen staan de bestandsrechten gewoon goed, maar als je een 403 forbidden error krijgt, is het zinvol hier naar te kijken omdat deze foutcode vaak iets van doen heeft met de bestandsrechten.

Zoals eerder in dit artikel beschreven wijzig je de bestandsrechten via de mappenstructuur met een programma als Filezilla.

Volgens de WordPress Codex zijn dit de beste bestandsrechten voor WordPress:

  • Bestanden: 644 of 640
  • Mappen: 755 of 750

Voor Magento is het dit:

  • Bestanden: 660 of 644
  • Mappen: 770 of 755

Mocht je hier twijfels over hebben, neem dan voor de zekerheid contact op met je webhoster. Je moet voorkomen dat je de rechten te soepel instelt. Dit maakt het voor hackers of andere kwaadwillende makkelijker om je website te hacken.

Een fout in de .htaccess

.htaccess bestanden staan vaak vol met regels tekst waarin een fout snel gemaakt is. Als dit het geval is kun je een 403 forbidden error code krijgen.

Je kunt testen of je .htaccess bestand corrupt is door deze via Filezilla te verwijderen. Let hierbij wel op dat je eerst een backup maakt van dit bestand zodat je deze altijd weer terug kunt zetten.

Als je het .htaccess bestand hebt verwijderd kun je in bijvoorbeeld WordPress een nieuw .htaccess bestand genereren door in de Instellingen naar Permalinks te gaan, en deze pagina opnieuw op te slaan.

Wanneer je dit gedaan hebt, maakt WordPress automatisch een nieuw .htaccess bestand voor je aan.

Je kunt nu controleren of de melding weg is.

Voor Magento kun je zelf een .htaccess bestand aanmaken. Een template hiervoor vind je op Github.

Let wel op: als je website of webshop bij een webhoster staat die gebruikt maakt van Nginx (zoals Hipex), dan zul je geen gebruik maken van een .htaccess bestand en kun je deze oplossing negeren.

Plugins die corrupt of niet compatible zijn

Als alle bovenstaande stappen niet voor je gewerkt hebben dan is het raadzaam te kijken naar de plugins/extensies die je hebt geïnstalleerd.

De makkelijkste manier is om alle plugins in één keer te de-activeren. Dit doe je door via Filezilla de folder waarin je plugins staan, te hernoemen naar iets anders. Bijvoorbeeld: deactivated-plugins.

Dit zorgt ervoor dat alle plugins uitgeschakeld worden en je je website opnieuw kunt bekijken. Is de 403 melding verholpen? Dan is één van de plugins de boosdoener.

Nu kun je de map weer hernoemen naar de naam die het hoort te hebben en ga je één voor één de plugins uitschakelen. Ook dit kun je weer doen door de naam van de plugin te veranderen, bijvoorbeeld door er -old achter te zetten.

Zo ga je alle plugins af, totdat je website weer naar behoren werkt en je één plugin uitgeschakeld hebt. Dat is dan waarschijnlijk de boosdoener.

403 forbidden Nginx

De Nginx 403 forbidden foutmelding is er eentje die wij ook vaak tegen komen. In principe verschilt deze melding niet van de standaard 403 forbidden melding maar is nu duidelijk dat hier om een website gaat die op Nginx draait.

Je doet er wel goed aan om in ieder geval je Nginx configuratie bestanden te controleren op mogelijke fouten.

Standaard bevinden de Nginx-configuratiebestanden zich in /etc/nginx. Als je deze directory controleert, vindt je een aantal configuratiebestanden voor de verschillende modules van Nginx.

Het belangrijkste configuratiebestand is /etc/nginx/nginx.conf. Dit is het bestand met alle belangrijke richtlijnen voor NGINX, vergelijkbaar met Apache's hoofdbestand httpd.conf.

Bij Hipex bevinden de NGINX-configuratiebestanden zich in /home//domains//var/etc. Als je deze directory controleert, vindt je een aantal configuratiebestanden voor de verschillende modules van Nginx.

Alle bestanden welke zich hier bevinden en eindigen op de extensie nginx.conf, zijn van deze configuratiebestanden. Je ziet ook een sub mapje scope-http, bestanden in deze map zijn vergelijkbaar met Apache's hoofdbestand httpd.conf.

Uiteraard kun je hiervoor ook de hulp van je webhoster bij inschakelen. Meer over het aanpassen van je Nginx configuratiebestand voor Magento, lees je in onze FAQ.