Options -Indexes # Rediriger les erreurs serveur vers ton contrôleur # On force le passage par index.php pour que ton routeur reçoive les paramètres ErrorDocument 404 /index.php?ctrl=error&action=error_404 ErrorDocument 403 /index.php?ctrl=error&action=error_403 # --- Sécurité --- Require all denied Require all denied RewriteEngine On # 2. Bloquer l'accès direct au dossier vendor RewriteRule ^vendor/ - [F,L] # 3. Autoriser l'accès aux fichiers/dossiers physiques (images, css, js) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 4. RACINE : accueil par défaut RewriteRule ^$ index.php?ctrl=project&action=home [QSA,L] # 5. ID NUMÉRIQUE : /ctrl/action/42 RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/([0-9]+)/?$ index.php?ctrl=$1&action=$2&id=$3 [QSA,L] # 6. PSEUDO : /user/profile/johndoe RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/([a-zA-Z0-9_-]+)/?$ index.php?ctrl=$1&action=$2&pseudo=$3 [QSA,L] # 7. RÉÉCRITURE GÉNÉRALE (inclut tes erreurs) : /ctrl/action # C'est cette règle qui va transformer "/error/error_404" # en "index.php?ctrl=error&action=error_404" RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/?$ index.php?ctrl=$1&action=$2 [QSA,L]