For the complete documentation index, see llms.txt. This page is also available as Markdown.

403 Forbidden beheben

Ein 403-Fehler bedeutet, dass der Webserver die Anfrage verstanden hat, den Zugriff aber nicht erlaubt.

Die Webseite oder Datei existiert also möglicherweise, darf aber nicht ausgeliefert werden. Das Problem liegt meistens an Dateirechten, fehlenden Index-Dateien, falscher Webserver-Konfiguration oder Zugriffsbeschränkungen.

Was bedeutet 403 Forbidden?

Die Meldung 403 Forbidden bedeutet übersetzt: Zugriff verboten.

Der Server ist erreichbar, verweigert aber den Zugriff auf die angeforderte Seite.

Typische Anzeigen im Browser sind:

  • 403 Forbidden

  • Forbidden

  • You don't have permission to access this resource

  • Access denied

  • nginx 403 Forbidden

  • Apache 403 Forbidden

Häufige Ursachen

Ein 403-Fehler entsteht häufig durch:

  • falsche Datei- oder Ordnerrechte

  • falschen Besitzer von Dateien

  • fehlende Startdatei wie index.html oder index.php

  • deaktiviertes Directory Listing

  • falsches Webroot-Verzeichnis

  • fehlerhafte .htaccess-Regeln

  • Zugriffsbeschränkung durch Apache oder Nginx

  • blockierende Firewall- oder Sicherheitsregel

  • falsche Konfiguration nach einem Upload

  • fehlende Berechtigungen nach einer Migration

Erste Prüfung

Prüfe zuerst, ob die Webseite grundsätzlich erreichbar ist.

  1. Öffne deine Domain im Browser.

  2. Prüfe, ob der Fehler auf der gesamten Webseite oder nur auf einer bestimmten Unterseite erscheint.

  3. Prüfe, ob der Webserver läuft.

  4. Prüfe, ob die Dateien im richtigen Verzeichnis liegen.

  5. Prüfe, ob eine Startdatei vorhanden ist.

Typische Startdateien sind:

  • index.html

  • index.php

  • index.htm

Wenn keine Startdatei vorhanden ist und Directory Listing deaktiviert ist, zeigt der Server häufig einen 403-Fehler an.

Webserver prüfen

Prüfe zuerst, ob dein Webserver läuft.

Bei Apache:

systemctl status apache2

Bei Nginx:

systemctl status nginx

Wenn der Dienst nicht läuft, starte ihn neu.

Apache starten:

systemctl start apache2

Nginx starten:

systemctl start nginx

Nach Änderungen an der Konfiguration solltest du den Webserver neu laden.

Apache neu laden:

systemctl reload apache2

Nginx neu laden:

systemctl reload nginx

Webroot prüfen

Das Webroot ist der Ordner, aus dem dein Webserver die Webseite ausliefert.

Häufige Webroot-Verzeichnisse sind:

  • /var/www/html

  • /var/www/deinedomain.de

  • /home/benutzer/web

  • /usr/share/nginx/html

Wenn deine Dateien im falschen Ordner liegen, kann der Webserver sie nicht korrekt ausliefern.

Prüfe, welches Webroot in deiner Apache- oder Nginx-Konfiguration eingetragen ist.

Startdatei prüfen

Ein häufiger Grund für 403 Forbidden ist eine fehlende Startdatei.

Wenn du nur einen Ordner aufrufst, sucht der Webserver nach einer Startdatei.

Beispiel:

https://deinedomain.de/

Der Webserver sucht dann zum Beispiel nach:

  • index.html

  • index.php

Prüfe im Webroot, ob eine solche Datei vorhanden ist.

Beispiel:

ls -la /var/www/html

Wenn keine Startdatei vorhanden ist, lege eine an oder lade deine Webseite vollständig hoch.

Beispiel für eine einfache Testdatei:

echo "Webseite funktioniert" > /var/www/html/index.html

Danach rufst du deine Domain erneut im Browser auf.

Dateirechte prüfen

Falsche Rechte sind eine der häufigsten Ursachen für 403-Fehler.

Der Webserver muss Dateien lesen und Ordner betreten können.

Unter Linux gelten meistens folgende Standardrechte:

Typ
Empfohlenes Recht

Ordner

755

Dateien

644

Ordnerrechte setzen:

find /var/www/html -type d -exec chmod 755 {} \;

Dateirechte setzen:

find /var/www/html -type f -exec chmod 644 {} \;

Passe /var/www/html an dein tatsächliches Webroot an.

Besitzer prüfen

Neben den Dateirechten muss auch der Besitzer stimmen.

Bei Apache und Nginx läuft der Webserver oft unter dem Benutzer www-data.

Auf Debian und Ubuntu ist häufig dieser Besitzer sinnvoll:

chown -R www-data:www-data /var/www/html

Bei anderen Systemen oder Panels kann der Benutzer abweichen.

Häufige Webserver-Benutzer sind:

  • www-data

  • apache

  • nginx

  • ein eigener Benutzer des Webspaces oder Panels

Prüfe deshalb vorher, unter welchem Benutzer dein Webserver läuft.

Apache-Prozesse anzeigen:

ps aux | grep apache

Nginx-Prozesse anzeigen:

ps aux | grep nginx

Apache-Konfiguration prüfen

Wenn du Apache verwendest, kann ein 403-Fehler durch eine falsche Directory-Konfiguration entstehen.

Prüfe deine VirtualHost-Konfiguration.

Typische Datei:

/etc/apache2/sites-available/deinedomain.conf

Ein einfacher Apache-VirtualHost kann so aussehen:

<VirtualHost *:80>

ServerName deinedomain.de

DocumentRoot /var/www/html

<Directory /var/www/html>

AllowOverride All

Require all granted

</Directory>

</VirtualHost>

Wichtig ist vor allem:

Require all granted

Wenn diese Zeile fehlt oder falsch gesetzt ist, kann Apache den Zugriff verweigern.

Nach Änderungen Apache-Konfiguration prüfen:

apache2ctl configtest

Apache neu laden:

systemctl reload apache2

Nginx-Konfiguration prüfen

Wenn du Nginx verwendest, prüfe den eingetragenen root-Pfad.

Typische Datei:

/etc/nginx/sites-available/deinedomain

Ein einfacher Nginx-Serverblock kann so aussehen:

server {

listen 80;

server_name deinedomain.de;

root /var/www/html;

index index.html index.php;

}

Wichtig ist:

  • root zeigt auf das richtige Webroot

  • index enthält die richtige Startdatei

  • Dateien im Webroot sind lesbar

  • Ordner sind betretbar

Nach Änderungen Nginx-Konfiguration prüfen:

nginx -t

Nginx neu laden:

systemctl reload nginx

.htaccess prüfen

Bei Apache kann eine .htaccess-Datei den Zugriff blockieren.

Prüfe im Webroot, ob eine .htaccess vorhanden ist.

Befehl:

ls -la /var/www/html

Typische problematische Regeln sind:

Deny from all

Require all denied

Oder Zugriffsbeschränkungen auf bestimmte IP-Adressen.

Zum Test kannst du die Datei kurz umbenennen:

mv /var/www/html/.htaccess /var/www/html/.htaccess.bak

Lade danach die Webseite neu.

Wenn der Fehler verschwindet, liegt das Problem an einer Regel in der .htaccess.

Directory Listing

Wenn du einen Ordner ohne Startdatei aufrufst, kann der Webserver versuchen, den Inhalt des Ordners anzuzeigen.

Viele Server verbieten das aus Sicherheitsgründen. Dann erscheint ein 403-Fehler.

Das ist normal und oft sogar gewollt.

Lösung:

  • Startdatei wie index.html oder index.php anlegen

  • richtige Webseite hochladen

  • Directory Listing bewusst aktivieren, falls wirklich benötigt

Directory Listing sollte nur aktiviert werden, wenn du genau weißt, warum du es brauchst.

PHP-Dateien prüfen

Wenn deine Webseite PHP nutzt, muss PHP korrekt eingerichtet sein.

Bei Apache wird häufig libapache2-mod-php oder PHP-FPM verwendet.

Bei Nginx wird PHP fast immer über PHP-FPM eingebunden.

Wenn PHP falsch eingebunden ist, kann es je nach Konfiguration zu Fehlern kommen.

Prüfe bei PHP-Webseiten:

  • ist PHP installiert?

  • läuft PHP-FPM?

  • stimmt der PHP-Socket?

  • zeigt index auf index.php?

  • sind PHP-Dateien lesbar?

PHP-FPM prüfen:

systemctl status php*-fpm

Logs prüfen

Die Logs zeigen meistens genauer, warum der Zugriff verweigert wird.

Apache Logs

Typische Dateien:

  • /var/log/apache2/error.log

  • /var/log/apache2/access.log

Live mitlesen:

tail -f /var/log/apache2/error.log

Nginx Logs

Typische Dateien:

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

Live mitlesen:

tail -f /var/log/nginx/error.log

Achte in den Logs auf Meldungen wie:

  • permission denied

  • directory index is forbidden

  • client denied by server configuration

  • access forbidden by rule

  • open() failed

Diese Meldungen zeigen meist direkt die Ursache.

SELinux prüfen

Bei AlmaLinux, Rocky Linux oder anderen RHEL-basierten Systemen kann SELinux den Zugriff blockieren.

Prüfe den SELinux-Status:

sestatus

Wenn SELinux aktiv ist, können falsche Dateikontexte einen 403-Fehler verursachen.

Für Webdateien kann folgender Befehl helfen:

restorecon -Rv /var/www/html

Passe den Pfad an dein Webroot an.

SELinux sollte nicht einfach dauerhaft deaktiviert werden, ohne die Ursache zu verstehen.

Zugriffsbeschränkungen prüfen

Manche Konfigurationen erlauben Zugriff nur für bestimmte IP-Adressen.

Prüfe deshalb:

  • Apache-Directory-Regeln

  • Nginx-Location-Regeln

  • .htaccess

  • Webpanel-Sicherheitsregeln

  • Firewall-Regeln

  • Sicherheitsplugins von CMS-Systemen

Wenn du dich aus einem anderen Netzwerk verbindest, kann sich auch deine öffentliche IP-Adresse geändert haben.

CMS-Systeme prüfen

Bei WordPress, Joomla, Shopware oder anderen CMS-Systemen kann ein 403-Fehler auch durch Plugins, Themes oder Sicherheitsfunktionen entstehen.

Prüfe:

  • Sicherheitsplugins

  • Wartungsmodus

  • fehlerhafte .htaccess

  • Dateirechte nach Updates

  • beschädigte Uploads

  • blockierte Adminbereiche

  • fehlende PHP-Berechtigungen

Bei WordPress kannst du zum Test Sicherheitsplugins vorübergehend deaktivieren, indem du den Plugin-Ordner umbenennst.

Beispiel:

mv /var/www/html/wp-content/plugins /var/www/html/wp-content/plugins_off

Danach prüfst du, ob die Webseite wieder erreichbar ist.

Nach Upload oder Migration

Nach einem Upload per SFTP, SCP oder Migration können Rechte und Besitzer falsch gesetzt sein.

Typische Probleme:

  • Dateien gehören dem falschen Benutzer

  • Ordner haben keine Ausführungsrechte

  • .htaccess wurde nicht übertragen

  • versteckte Dateien fehlen

  • Webroot wurde falsch gewählt

  • Startdatei liegt in einem Unterordner

Prüfe nach einer Migration besonders:

  • Webroot

  • Besitzer

  • Dateirechte

  • Startdatei

  • .htaccess

  • PHP-Version

  • Datenbankverbindung

Schnelle Prüfreihenfolge

Gehe bei einem 403-Fehler am besten so vor:

  1. Prüfe, ob der Webserver läuft.

  2. Prüfe, ob die Domain auf den richtigen Server zeigt.

  3. Prüfe, ob die Dateien im richtigen Webroot liegen.

  4. Prüfe, ob eine Startdatei vorhanden ist.

  5. Prüfe Datei- und Ordnerrechte.

  6. Prüfe den Besitzer der Dateien.

  7. Prüfe Apache- oder Nginx-Konfiguration.

  8. Prüfe .htaccess, falls Apache verwendet wird.

  9. Prüfe die Webserver-Logs.

  10. Prüfe Sicherheitsplugins oder Zugriffsbeschränkungen.

Häufige Fehlermeldungen

Fehlermeldung
Mögliche Ursache

directory index is forbidden

keine Startdatei vorhanden und Directory Listing deaktiviert

permission denied

Dateirechte oder Besitzer falsch

client denied by server configuration

Apache- oder Nginx-Regel blockiert Zugriff

access forbidden by rule

Zugriff durch Regel oder Sicherheitsmodul blockiert

open() failed

Datei kann nicht gelesen oder geöffnet werden

Support kontaktieren

Wenn du den Fehler nicht selbst beheben kannst, kontaktiere den Support.

Gib dabei bitte folgende Informationen an:

  • betroffene Domain

  • verwendetes Betriebssystem

  • verwendeter Webserver: Apache oder Nginx

  • Pfad zum Webroot

  • genaue Fehlermeldung im Browser

  • relevante Logauszüge

  • was du zuletzt geändert hast

  • ob der Fehler die ganze Webseite oder nur einzelne Seiten betrifft

Sicherheit: Sende keine Passwörter, privaten SSH-Keys, Datenbankpasswörter oder API-Tokens an den Support.

Zuletzt aktualisiert