# Flatboard 5 - Public Directory

# Définir index.php comme fichier d'index par défaut
DirectoryIndex index.php

# Activer le moteur de réécriture
<IfModule mod_rewrite.c>
    RewriteEngine On
    
    # Rediriger l'accès direct à index.php vers la racine
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php[\s?] [NC]
    RewriteRule ^index\.php$ / [R=301,L]
    
    # IMPORTANT: Forcer /uploads/attachments/ à passer par le contrôleur PHP
    # MÊME SI LE FICHIER EXISTE (pour gérer les permissions et MIME types)
    # Cette règle DOIT être AVANT la règle générale pour les fichiers existants
    # Pas de condition sur l'existence du fichier - on force TOUJOURS le passage par index.php
    RewriteCond %{REQUEST_URI} ^/uploads/attachments/ [NC]
    RewriteRule ^uploads/attachments/(.*)$ index.php?url=/uploads/attachments/$1 [QSA,L]
    
    # Forcer sitemap.xml et robots.txt à passer par le contrôleur PHP
    RewriteCond %{REQUEST_URI} ^/sitemap\.xml$ [NC]
    RewriteRule ^sitemap\.xml$ index.php?url=/sitemap.xml [QSA,L]
    
    RewriteCond %{REQUEST_URI} ^/robots\.txt$ [NC]
    RewriteRule ^robots\.txt$ index.php?url=/robots.txt [QSA,L]
    
    # Rediriger les requêtes API vers api.php
    # Supporte les sous-dossiers : /forum/api/... ou /api/...
    RewriteCond %{REQUEST_URI} /api/ [NC]
    RewriteRule ^api/(.*)$ api.php?url=/api/$1 [QSA,L]
    
    # Rediriger toutes les requêtes vers index.php sauf fichiers existants
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Pour la racine (/), utiliser url=/ au lieu de url=
    RewriteRule ^$ index.php?url=/ [QSA,L]
    RewriteRule ^(.*)$ index.php?url=$1 [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 X-XSS-Protection "1; mode=block"
</IfModule>

# Désactiver l'affichage des répertoires
Options -Indexes

# Bloquer l'accès direct aux fichiers sensibles
<FilesMatch "\.(log|json|sql|bak|ini|conf)$">
    Order allow,deny
    Deny from all
</FilesMatch>