# Nur *.php im Webroot und assets/ sollen direkt aufrufbar sein. Interne # Verzeichnisse (Sessions, Mail-Logs, Migrationen, CLI-Skripte, Doku, # App-Bausteine, Legacy-DB-Shim, Vendor-Bibliotheken), die Git-Metadaten und # Konfigurationsdateien mit Zugangsdaten duerfen nicht direkt per URL # abrufbar sein. RewriteEngine On # Alles auf HTTPS. Session-Cookies werden nur ueber HTTPS mit dem # secure-Flag gesetzt (app_start_session()), und HSTS wird ebenfalls nur # dann gesendet - ohne Redirect kaeme ein Nutzer per http an und bekaeme # eine Session ohne secure-Flag. X-Forwarded-Proto deckt den Fall ab, # dass Apache hinter dem Plesk-nginx-Proxy laeuft. RewriteCond %{HTTPS} !=on RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{REQUEST_URI} ^/(var|database|scripts|docs|app|lib)/ [NC] RewriteRule ^ - [F] # Vendor-Verzeichnisse werden ausschliesslich serverseitig eingebunden # (TCPDF ueber exportKaffeeliste.php); direkte URL-Aufrufe ihrer PHP- # Dateien sind nie erwuenscht. RewriteCond %{REQUEST_URI} ^/(TCPDF|PHPMailer|DataTables)/ [NC] RewriteRule ^ - [F] # .git waere sonst komplett herunterladbar, falls es je mit deployt wird. RewriteCond %{REQUEST_URI} ^/\.(git|claude|local)(/|$) [NC] RewriteRule ^ - [F] # Konventionelle /sitemap.xml auf die dynamische, host-korrekte Sitemap. RewriteRule ^sitemap\.xml$ sitemap.php [L] # Konfigurations- und Deploy-Dateien mit Zugangsdaten. sync_config.jsonc # enthaelt das FTP-Passwort im Klartext und darf niemals ausgeliefert werden, # auch nicht versehentlich mit hochgeladen. Require all denied Order allow,deny Deny from all Require all denied Order allow,deny Deny from all