Options -Indexes
RewriteEngine On

# ── Sécurité : bloquer fichiers sensibles ──────────────────────
RewriteRule ^(\.env|composer\.(json|lock)|\.git)$ - [F,L]
<FilesMatch "(\.env|composer\.json|composer\.lock)$">
    Require all denied
</FilesMatch>

# ── Rediriger tout vers index.php (sauf fichiers/dossiers réels) ─
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

# ── Headers sécurité ───────────────────────────────────────────
<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"
</IfModule>

# ── Cache navigateur pour assets statiques ─────────────────────
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css              "access plus 7 days"
    ExpiresByType application/javascript "access plus 7 days"
    ExpiresByType image/png             "access plus 30 days"
    ExpiresByType image/jpeg            "access plus 30 days"
    ExpiresByType image/svg+xml         "access plus 30 days"
    ExpiresByType application/x-font-woff2 "access plus 1 year"
</IfModule>

# ── Encodage UTF-8 ─────────────────────────────────────────────
AddDefaultCharset UTF-8

# ── PHP : désactiver l'affichage d'erreurs en production ───────
# (Override par config/app.php si debug=true — laisser ces lignes
#  pour les hébergeurs qui ignorent ini_set depuis PHP)
<IfModule mod_php.c>
    php_flag display_errors Off
    php_flag log_errors     On
    php_value error_log     ../storage/logs/php_errors.log
</IfModule>
<IfModule mod_php8.c>
    php_flag display_errors Off
    php_flag log_errors     On
    php_value error_log     ../storage/logs/php_errors.log
</IfModule>
