# =====================================================================
#  Fichier : public/.htaccess
#  Chemin complet sur serveur : /www/DEV/haja/public/.htaccess
#  
#  Recueil ERBC – Configuration Apache
#  Toutes les requêtes (sauf fichiers existants) sont redirigées
#  vers index.php (front controller pattern).
#  
#  Phase 10a : Permissions-Policy mis à jour pour autoriser caméra,
#  micro et capture d'écran sur ce site (nécessaire pour l'enregistrement
#  de capsules vidéo).
# =====================================================================
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Forcer HTTPS (à activer en production)
    # RewriteCond %{HTTPS} off
    # RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # --- NORMALISATION TRAILING SLASH ---
    # Si l'URL se termine par un /, et que ce n'est pas un vrai dossier,
    # on retire le slash et on redirige (301).
    # Évite que /bible/ soit traité différemment de /bible
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^(.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Si le fichier ou dossier existe vraiment, on le sert directement
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # Sinon, on redirige tout vers index.php
    RewriteRule ^ index.php [QSA,L]
</IfModule>

# ---------------------------------------------------------------------
# Headers de sécurité
# ---------------------------------------------------------------------
<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
    Header set X-Frame-Options "SAMEORIGIN"
    Header set Referrer-Policy "strict-origin-when-cross-origin"

    # Permissions-Policy : caméra, micro et display-capture autorisés
    # uniquement pour notre propre origine (self). Géoloc reste désactivée.
    Header set Permissions-Policy "geolocation=(), camera=(self), microphone=(self), display-capture=(self)"

    Header set Content-Security-Policy "default-src 'self'; style-src 'self' 'unsafe-inline' https://rsms.me; font-src 'self' https://rsms.me data:; script-src 'self'; img-src 'self' data: blob:; media-src 'self' blob:;"
</IfModule>

# ---------------------------------------------------------------------
# Empêcher l'accès aux fichiers sensibles
# ---------------------------------------------------------------------
<FilesMatch "\.(env|json|md|lock|gitignore)$">
    Require all denied
</FilesMatch>

# Désactiver listing des dossiers
Options -Indexes
