Sécurité, Performance et Haute Disponibilité |
Petit guide .htaccess |
||
|
[English] [Français] [Norsk]
|
Ce petit guide donne un aperçu du fonctionnement des fichiers .htaccess, qui permettent aux utilisateurs de contrôler diverses options qui affectent le fonctionnement du serveur web. Champ d'actionIl est important de se rapeller que les directives présentes dans un fichier .htaccess s'appliquent non seulement au répertoire contenant .htaccess, mais également à ses sous-répertoires. CommentairesLes commentaires dans les fichiers .htaccess sont marqués par un '#' au début d'une ligne. Les '#' placés aux fins de lignes génèrent des messages inutiles dans le journal d'erreur du serveur. Protection avec mot de passe pour répertoiresÉdité correctement, .htaccess peut être utilisé afin de mettre en place une authentification avec mot de passe pour restreindre l'accès à des répertoires ou fichiers spécifiques. AuthName "domaine-autorisé" AuthType Basic AuthUserFile /home/myself/www/private/.htpasswd require valid-user La directive AuthName spécifie le texte affiché par le dialogue de saisie de mot de passe, afin que l'utilisateur sache quel nom et mot de passe utiliser. AuthType choisit le mode d'authentification, soit «Basic» ou «Digest». La directive AuthUserFile désigne le chemin d'accès vers le fichier texte contenant les noms d'utilisateurs et mots de passe, préférablement placé dans $HOME. Pour des raisons de sécurité, ne placez pas ce fichier sous votre répertoire ~/www et faites bien attention qu'il ne soit pas lisible par d'autres utilisateurs (chmod 0600). Le fichier spécifié par AuthUserFile est généré par htpasswd(1). Ce programme permet de spécifier les mots de passe interactivement. Exécutez ceci dans le répertoire qui doit être protégé - $ htpasswd -c .htpasswd username Bloquage de requêtes provenant d'adresses spécifiquesLe fichier .htaccess peut faire en sorte que le serveur web refusera l'accès en provenance de l'adresse IP 10.0.0.1 - Deny from 10.0.0.1 Ou alors - <Limit GET> order deny,allow 10.0.0.1 allow from all </Limit> L'accès peut être interdit à des sous-réseaux entiers en enlevant les derniers chiffres de l'adresse, par exemple 10.0.0.. Spécifier des documents d'erreurVous pouvez déclarer et utiliser vos propres documents en réponse à des erreurs, tels des requêtes pour des fichiers non-existants, avec la directive ErrorDocument. Veuillez vous assurer que la taille des documents d'erreurs soit minimale, et qu'ils n'incluent aucune image, car les vers informatiques peuvent rapidement générer beaucoup de requêtes. N'utilisez jamais d'URL comme destination pour le ErrorDocument. Notez que la location spécifie un chemin d'accès vers le fichier qui soit absolu ou relatif, comme démontré si dessous. ErrorDocument 404 errors/notfound.html ErrorDocument 403 errors/forbidden.html ErrorDocument 500 errors/servererror.html Affichage des répertoiresUn fichier .htaccess peut être utilisé pour empêcher l'affichage du contenu d'un répertoire dépourvu de document d'index - Options -Indexes Pour bloquer sélectivement l'affichage de fichiers nommés README et toutes les images d'extension .gif, utilisez la directive IndexIgnore - IndexIgnore README *.gif Associations des extensions de fichierPour changer les associations d'extensions de fichier par défaut, la directive AddHandler peut être utilisée. Supposez que pour une raison obscure, vous désirez que les fichiers d'extension .rat soient reconnus par le serveur web en tant que scripts cgi, faites: AddHandler cgi-script .rat C'est possible, avec la directive AddType, d'associer des extensions de fichier à des types MIME spécifiques. Pour forcer l'association des fichiers avec l'extesion '.rif' avec le type 'image/gif', utilisez - AddType image/gif .rif Pour assigner un «content-type» spécifique aux fichiers se terminant en .foo, vous utiliseriez - AddType application/x-foo .foo S'il est de votre avis qu'un type MIME en particulier mérite une association globale au serveur web, n'hésitez pas à nous en faire part. Négotiation de contenuLes navigateurs web conformes à la norme HTTP/1.1 supportent les requêtes de pages web et autres resources en différents langages et codages de caractères. L'option MultiViews du module mod_negotiation d'Apache contrôle la sélection implicite de documents alternatifs selon leur extension. Options +MultiViews Par exemple, si un navigateur web fait une requête pour index.html et aucun fichier se nomme ainsi, le serveur web essaiera index.html.fr, index.html.en et ainsi de suite, tout dépendant des préférences de langage de l'utilisateur. LiensDocumentation pour Apache
Documentation pour PHP
Directives utiles |