# Zugriffsschutz fuer den gesamten Web-Root. # # restricted/.htaccess schuetzt nur ein Verzeichnis. Die Regeln hier greifen # fuer den ganzen Baum und fangen ab, was ausserhalb davon liegt - allen voran # das Git-Verzeichnis, ueber das sich sonst der komplette Quellcode samt # Historie herunterladen laesst. # --- Punkt-Verzeichnisse und -Dateien: .git, .claude, .gitignore --- # .well-known bleibt frei, das brauchen Zertifikatsausstellungen. RewriteEngine On RewriteRule (^|/)\.(?!well-known/) - [F,L] RedirectMatch 404 (^|/)\.(?!well-known/) # --- Dateitypen, die der Browser nie anfordert --- # Konfiguration, Python-Skripte, Datenhaltung, Vorlagen und Archive. Die # Seite laedt ausschliesslich .php, .css, .js, Bilder und Schriften. Require all denied Order allow,deny Deny from all # --- Notbremse ohne Modulabhaengigkeit --- # Die Punkt-Regel oben braucht mod_rewrite oder mod_alias. Fehlen beide, faellt # sie ersatzlos und ohne Fehlermeldung aus - und .git waere wieder abrufbar. # FilesMatch gehoert zum Kern und ist immer verfuegbar. Es passt allerdings nur # auf Dateinamen, nicht auf Pfadbestandteile, kann .git also nicht vollstaendig # sperren. Es nimmt den ueblichen Auslesewerkzeugen aber den Einstieg: ohne # HEAD, config, index und packed-refs laesst sich das Verzeichnis nicht # aufrollen, weil die Objektdateien hexadezimale Namen tragen. # # Belastbar waere nur, .git und restricted/ ausserhalb des Dokumentenbaums zu # legen. Diese Regeln sind Schadensbegrenzung, keine Grenze. Require all denied Order allow,deny Deny from all