diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..f7d5bec
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,37 @@
+Options -Indexes
+
+# 1. On définit des URLs propres pour les erreurs
+ErrorDocument 403 /error/error_403
+ErrorDocument 404 /error/error_404
+
+# --- 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]
\ No newline at end of file
diff --git a/controllers/ErrorCtrl.php b/controllers/ErrorCtrl.php
index 2e69e9e..25f3447 100644
--- a/controllers/ErrorCtrl.php
+++ b/controllers/ErrorCtrl.php
@@ -11,6 +11,7 @@
* Page erreur 404
*/
public function error_404(){
+ http_response_code(404);
$this->_display("error_404");
}
@@ -18,6 +19,7 @@
* Page erreur 403
*/
public function error_403(){
+ http_response_code(403);
$this->_display("error_403");
}