Le logiciel de serveur web que nous utilisons
(Apache)
permet aux utilisateurs de modifier bon nombre de paramètres affectant
l'opération du serveur web, par le biais de fichiers .htaccess. Il
sagit de simples fichiers textes, contenant des directives spécifiques.
Vous pouvez placer un fichier .htaccess dans n'importe quel
répertoire sous ~/www/.
Ce petit guide répertorie quelques directives fréquemment utilisées.
Note: Les utilisateurs de nos plans Avancé et Corporatif
préférerons peut-être placer ces directives directement dans leur
httpd.conf. Dans tous les cas, la syntaxe est la même.
Il 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.
Les commentaires dans les fichiers .htaccess sont marqués par un « # » au début d'une ligne.
L'authentification par mot de passe est utile lorsque vous désirez restreindre l'accès à un répertoire avec des noms d'utilisateur / mots de passe. Le fureteur du client affiche alors un prompt lorsque le visiteur tente d'accéder à un répertoire protégé. Lorsque la sécurité est importante, l'authentification par mot de passe devrait toujours être utilisée en combinaison avec SSL.
AuthName "domaine-autorisé" AuthType Basic AuthUserFile /home/myself/private/stuff.pw Require valid-user
Le AuthName peut être n'importe quel texte. Ce texte sera affiché lors de la saisie du mot de passe.
La directive AuthUserFile désigne le chemin d'accès vers le fichier texte contenant les noms d'utilisateurs et mots de passe. Le fichier peut être placé nimporte où sous votre répertoire maison. Dans cet exemple, nous utilisons ~/private/stuff.pw.
Vous pouvez créer et mettre à jour un AuthUserFile avec l'utilitaire
htpasswd(1). Utilisez le flag
d'option -c
pour créer un nouveau fichier. Le dernier argument
est le nom d'utilisateur que nous voulons créer (ou dont nous voulons
changer le mot de passe).
$ htpasswd -c ~/private/stuff.pw newlogin1 $ htpasswd ~/private/stuff.pw newlogin2
La directive Deny from
fait en sorte que l'accès à partir d'une
adresse IP, un bloc IP ou un domaine soit bloqué:
Deny from 10.0.0.1 Deny from 1.2.3.
Ou alors -
<Limit GET> Order deny,allow 10.0.0.1 1.2.3. Allow from all </Limit>
Notez que le blocage d'adresses IP est rarement un moyen efficace de régler des problèmes d'abus! C'est en général une mauvaise idée de bloquer des clients en utilisant l'adresse IP comme seul critère.
Vous 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 des vers informatiques, par exemple, peuvent rapidement générer beaucoup de requêtes. N'utilisez jamais un URL comme destination pour le ErrorDocument!
ErrorDocument 404 errors/notfound.html ErrorDocument 403 errors/forbidden.html ErrorDocument 500 errors/servererror.html
Si aucun fichier d'index n'existe dans un répertoire donné (et ce répertoire est lisible par le serveur web), un index sera automatiquement généré. Pour désactiver cette fonction, utilisez:
Options -Indexes
Il est aussi possible de cacher certains fichiers de l'index. Pour bloquer sélectivement l'affichage de fichiers nommés README et toutes les images d'extension .gif, utilisez IndexIgnore:
IndexIgnore README *.gif
Pour changer les associations d'extensions de fichier par défaut, la directive AddHandler peut être utilisée.
Pour traiter tous fichier .html en tant que scripts PHP (en assumant que ce sont réellement des scripts PHP!), vous utiliseriez:
AddType application/x-httpd-php .html
C'est possible, avec la directive
AddType, d'associer des extensions de
fichier à des types MIME spécifiques.
Pour forcer l'association des fichiers .foo
avec le
type application/x-foo-type
, utilisez:
AddType application/x-foo-type .foo
Nous ajoutons constamment des nouveaux types MIME par défaut. S'il est de votre avis qu'un type MIME en particulier mérite une reconnaissance globale, n'hésitez pas à nous en faire part!
Les 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.