Auf meinem Webserver möchte ich alle Dateien bis auf einige sinnvolle Ausnahmen blockieren. Ich habe die folgende Filesmatch-Direktive, die funktioniert:
<FilesMatch "(?<!\.txt|\.htm|\.html|\.css|\.php|\.js|\.jpg|\.png|\.gif|\.ico|\.svg|\.eot|\.ttf|\.woff|\.otf)$">
Order Allow,Deny
Deny from All
</FilesMatch>
Beachten Sie, dass dieser FilesMatch einen negativen Lookbehind-Regulären Ausdruck verwendet: siehehttp://www.regular-expressions.info/lookaround.html. Es werden alle Dateien außer denen mit der angegebenen Erweiterung blockiert.
Dies führt auch zu einer 403-Forbidden-Meldung für das Standarddokument des Verzeichnisses (index.html). Das ist nicht das, was ich will. Kann mir jemand helfen? Wie funktioniert die Suche nach Standarddokumenten? Gibt es eine andere Lösung, um alle außer einigen zu blockieren? Ich habe mit LogLevel-Debug im Fehlerprotokoll von Apache2 nachgesehen, aber die einzige Meldung lautet „Client von Serverkonfiguration abgelehnt“, wenn nach einem Standarddokument gefragt wird. (Die explizite Anfrage nach index.html funktioniert)
Edit: Es gibt eine Lösung hierfür, indem man die Location-Direktive verwendet. SieheMit FilesMatch die Sicherheit erhöhen Damit ist mein Problem gelöst, allerdings würde ich noch gerne wissen, warum es mit FilesMatch nicht klappt.