Le fichier .htaccess est un fichier de configuration utilisé par le serveur Apache. Il permet de contrôler de nombreux aspects du comportement du serveur pour un répertoire spécifique, comme la réécriture d’URL, les redirections, la restriction d’accès ou encore la gestion des erreurs personnalisées.
Documentation officielle Apache : https://httpd.apache.org/docs/current/howto/htaccess.html
Par défaut, Apache peut afficher le contenu d’un dossier si aucun fichier index (comme index.html ou index.php) n’est présent.
Pour éviter cela :
Options -Indexes
Cela empêche les visiteurs de voir la liste des fichiers d’un dossier sans index.
Apache sert généralement un fichier par défaut (comme index.html) lorsqu’un utilisateur accède à un répertoire.
Pour spécifier un fichier personnalisé :
DirectoryIndex accueil.html
Cela forcera Apache à servir accueil.html en priorité.
Pour empêcher l’accès à un dossier spécifique :
<Files "*"> Order Allow,Deny Deny from all </Files>
Ou de manière plus moderne (Apache 2.4+) :
Require all denied
Pour restreindre l’accès à un dossier avec un mot de passe :
AuthType Basic AuthName "Zone protégée" AuthUserFile /chemin/vers/.htpasswd Require valid-user
💡 Le fichier .htpasswd contient les identifiants et mots de passe chiffrés. Tu peux le générer avec la commande htpasswd.
Tu peux personnaliser les messages d’erreur (404, 403, etc.) :
ErrorDocument 404 /erreurs/404.html ErrorDocument 403 /erreurs/403.html
Cela redirige les erreurs vers des pages spécifiques plus esthétiques et informatives.
Pour simplifier les URL ou créer des routes plus propres :
RewriteEngine On RewriteRule ^page/([0-9]+)$ page.php?id=$1 [L]
⚠️ Le module mod_rewrite doit être activé sur le serveur Apache.
Pour rediriger toutes les connexions HTTP vers HTTPS :
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Cela garantit une connexion sécurisée entre l’utilisateur et le site.