# Warum bekomme ich 403, obwohl die Datei existiert und lesbar aussieht? Canonical page: https://blame76.com/snippets/config/2026-09-17-warum-bekomme-ich-403-obwohl-die-datei-existiert-und-lesbar-aussieht/ Category: Snippets Type: Config Published: 2026-09-17 Updated: 2026-09-17 Tags: apache, 403, permissions, require, documentroot Die Datei liegt im DocumentRoot und hat `644`, trotzdem liefert Apache `403 Forbidden`. Dateirechte allein erklären den Zugriff nicht. ## Drei Ebenen unterscheiden ### 1. Dateisystempfad Apache braucht nicht nur Leserecht auf der Datei, sondern Execute/Traverse-Recht auf allen Elternverzeichnissen: ```bash namei -l /voller/pfad/zur/datei ``` ### 2. Apache-Autorisierung Ein ``-Block oder `.htaccess` kann den Zugriff explizit verweigern: ```apache Require all granted ``` `Require all denied` bewirkt das Gegenteil. Auch Rewrite-Regeln mit `[F]` erzeugen 403. ### 3. Falscher VirtualHost / falscher Pfad ```bash apachectl -S ``` Prüfe, welcher VirtualHost für Hostname und Port tatsächlich gewählt wird und welcher DocumentRoot dazugehört. ## Der schnellste Hinweis steht oft im Error Log Ein 403 ist nur die HTTP-Zusammenfassung. Das Apache-Error-Log unterscheidet meist deutlich zwischen Dateisystemrechten, Authorization und Konfiguration. Die sinnvolle Reihenfolge ist deshalb: **Error Log → tatsächlicher vHost → Pfadrechte → Require/Rewrite**, nicht pauschal `chmod`. Quelle: https://httpd.apache.org/docs/2.4/howto/access.html