Qu'est-ce que le format de fichier HTACCESS ?
.htaccess est un fichier de configuration du serveur web Apache. Contrairement à la plupart des fichiers, .htaccess ne comprend pas de nom de fichier avant le point - le point initial fait partie du nom lui-même, ce qui en fait un fichier caché par défaut sur Linux et macOS. Les fichiers .htaccess ne doivent pas être modifiés manuellement par des utilisateurs non autorisés ou non qualifiés. Le fichier stocke toute la configuration en texte brut.
Les fichiers .htaccess contiennent des paramètres de configuration par répertoire qui définissent des fonctions du serveur telles que :
- la page d'index (par défaut) d'un répertoire,
- les restrictions d'accès pour des adresses IP spécifiques,
- les pages d'erreur personnalisées (par exemple, Page 404 Non Trouvée),
- les redirections et réécritures d'URL (
RewriteRule/RewriteCond), - la protection par mot de passe des répertoires (
AuthType,AuthUserFile), - des paramètres de sécurité serveur supplémentaires et des en-têtes de réponse HTTP personnalisés.
Pour que .htaccess prenne effet, AllowOverride doit être défini sur une valeur autre que None dans le fichier parent httpd.conf - sur les serveurs sécurisés, le traitement du .htaccess est souvent entièrement désactivé.
Parce qu'Apache lit le fichier .htaccess lors de chaque requête HTTP vers son répertoire, cela entraîne un coût de performance mesurable. La propre documentation d'Apache recommande de placer les directives équivalentes dans les blocs de configuration du serveur ou du VirtualHost à la place, car ceux-ci ne sont chargés qu'une seule fois au démarrage.
.htaccess est spécifique à Apache ; Nginx ne le prend pas en charge et nécessite des règles équivalentes dans nginx.conf. Le fichier compagnon .htpasswd stocke les identifiants hachés pour l'authentification HTTP de base.
Sécurité et sûreté
RISQUE : HIGH.htaccess est en soi un fichier texte inoffensif à ouvrir dans un éditeur. Cependant, il représente une surface d'attaque CRITIQUE sur les serveurs web : 1. Attaque par téléversement : si une application web permet aux utilisateurs de téléverser des fichiers dans un répertoire accessible par le web et que l'AllowOverride d'Apache autorise le .htaccess, un attaquant qui téléverse un .htaccess malveillant peut réactiver l'exécution PHP dans un répertoire de téléversement et exécuter des webshells. Atténuation : stockez les téléversements en dehors de la racine du document ; définissez AllowOverride None pour les répertoires de téléversement ; bloquez la création de .htaccess dans ces répertoires. 2. Divulgation d'informations : un serveur mal configuré qui sert .htaccess comme un fichier texte (au lieu de bloquer l'accès aux fichiers cachés) expose la configuration du serveur, la structure des répertoires et potentiellement des références d'identifiants. La configuration par défaut d'Apache bloque l'accès aux fichiers .htaccess (FilesMatch ^\.ht).
Détails du format
en brefProgrammes qui ouvrent les fichiers HTACCESS
Détails techniques
spécifications approfondies| Origine | Hérité de NCSA HTTPd (1994) ; Apache HTTP Server le prend en charge depuis la version 1.0 (1995) |
| Nom de fichier | Dotfile - le nom de fichier complet est `.htaccess` ; caché par défaut sur Unix et macOS |
| Type de fichier | Configuration Apache par répertoire en texte brut |
| Encodage | UTF-8 ou ASCII (doit correspondre à la locale du serveur) |
| Taille de fichier typique | 100 octets - 50 Ko (la plupart des fichiers font moins de 5 Ko) |
| Fréquence de traitement | Lu par Apache lors de chaque requête HTTP vers le répertoire contenant et tous ses sous-répertoires |
| Prérequis | `AllowOverride` ne doit pas être `None` dans le `httpd.conf` parent ; sinon `.htaccess` est ignoré silencieusement |
| Directives courantes | `RewriteRule`, `RewriteCond`, `ErrorDocument`, `AuthType`, `AuthUserFile`, `Header`, `Options`, `Redirect` |
| Syntaxe du contrôle d'accès | Apache 2.4 a remplacé `Allow`/`Deny` par `Require` ; l'ancienne syntaxe nécessite `mod_access_compat` |
| Compatibilité Nginx | Non pris en charge par Nginx ; les règles doivent être traduites manuellement en directives `nginx.conf` |
| Note sur les performances | Provoque des lectures de disque par requête ; Apache recommande de préférer `httpd.conf` ou les blocs VirtualHost pour la configuration |
| Risque de sécurité | Un fichier `.htaccess` téléversé par un attaquant dans un répertoire web accessible en écriture peut permettre l'exécution de scripts côté serveur |
| Publié | 1994 (NCSA HTTPd, predecessor to Apache; Apache inherited it from 1995) |
| Dernière version | Apache HTTP Server 2.4.x directive syntax (current) |
| Standard ouvert | Oui · libre de droits |
| Spécification | httpd.apache.org |
Conversions HTACCESS
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers HTACCESS.