# ==================================================================
# Plateforme ZI — réglages Apache pour la production
# (nécessite « AllowOverride All » sur le dossier dans la config Apache / WAMP)
# ==================================================================

# Pas de liste de fichiers dans les dossiers
Options -Indexes
DirectoryIndex index.php

# Fichiers sensibles jamais servis : fichiers cachés, journaux, clés, sauvegardes, documentation, schéma
<FilesMatch "(^\.|\.(log|json|md|sql|pem|bak|old|orig|ini|txt|flag|zip|csv)$|^(schema|structure)$|\.config(\.exemple)?\.php$|\.log\.\d+$)">
    Require all denied
</FilesMatch>

# En-têtes de sécurité (complètent ceux envoyés par PHP)
<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set Referrer-Policy "strict-origin-when-cross-origin"
    Header unset X-Powered-By
</IfModule>

# Compression
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript text/javascript application/json image/svg+xml
</IfModule>

# Cache navigateur des bibliothèques (les URL contiennent ?v=version)
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType font/woff2 "access plus 1 year"
    ExpiresByType font/ttf "access plus 1 year"
</IfModule>

# Types des polices
<IfModule mod_mime.c>
    AddType font/woff2 .woff2
    AddType font/ttf .ttf
</IfModule>
