snippets · config
Warum ignoriert Apache meine .htaccess?
Du änderst eine Rewrite-Regel in .htaccess – und exakt nichts passiert. Keine Fehlermeldung, kein Redirect, kein Rewrite.
Das Problem
Apache verarbeitet .htaccess nur, wenn die Serverkonfiguration Overrides für das betreffende Verzeichnis erlaubt. Der Default von AllowOverride ist None.
Erst beweisen, dass die Datei überhaupt gelesen wird
Auf einer Testumgebung kannst du kurzzeitig eine absichtlich ungültige Direktive eintragen:
THIS_MUST_FAIL
Kommt daraufhin ein 500, liest Apache die Datei. Bleibt alles unverändert, ist sehr wahrscheinlich die .htaccess für diesen Pfad deaktiviert oder du bearbeitest nicht den tatsächlich verwendeten DocumentRoot.
Die echte Serverkonfiguration könnte zum Beispiel enthalten:
<Directory "/var/www/htdocs">
AllowOverride FileInfo
</Directory>
Für Rewrite-Regeln ist FileInfo relevant. AllowOverride All funktioniert ebenfalls, ist aber breiter als nötig.
Zusätzlich prüfen
apachectl -S
apachectl -M | grep rewrite
Damit siehst du VirtualHosts/DocumentRoots und ob mod_rewrite geladen ist.
Wichtig
Die absichtlich ungültige Direktive sofort wieder entfernen. Auf Shared Hosting kannst du AllowOverride meist nicht selbst setzen; dort ist es eine Eigenschaft der Hoster-Konfiguration.
Quelle: https://httpd.apache.org/docs/2.4/howto/htaccess.html