Outils pour utilisateurs

Outils du site


bloc3:htaccess

Sécuriser son site Web sous Apache

Définition du fichier .htaccess

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

Visibilité du contenu d'un dossier

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.

Fichier par défaut

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é.

Blocage d'accès à un dossier

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

Accès authentifié

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.

Pages d'erreurs personnalisées

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.

Réécriture d'URL

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.

Forcer le https

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.

bloc3/htaccess.txt · Dernière modification : 2025/04/22 10:57 de ervedavid.a