# Front controller Symfony pour Apache (OVH mutualisé).
# Le DocumentRoot doit pointer sur ce dossier "public/".

DirectoryIndex index.php

# Pas de listing de répertoire (défense en profondeur si le DocumentRoot était mal pointé).
Options -Indexes

<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

# Refuse l'accès aux fichiers cachés / sensibles (.env, .git, etc.) même s'ils
# se retrouvaient sous la racine web par erreur de configuration.
<IfModule mod_authz_core.c>
    <FilesMatch "^\.">
        Require all denied
    </FilesMatch>
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Si une variable d'env REDIRECT_BASE est nécessaire (sous-répertoire), décommentez :
    # RewriteBase /

    # Rediriger vers l'URI sans le slash final (sauf répertoires existants)
    RewriteCond %{REQUEST_URI} .+/$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)/$ %{ENV:BASE}/$1 [R=301,L]

    # Si le fichier/dossier demandé existe, le servir directement
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # Sinon, tout passe par le front controller
    RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        # Fallback sans mod_rewrite
        RedirectMatch 307 ^/$ /index.php/
    </IfModule>
</IfModule>
