.htaccess

Un article de WindowsLinux.net - Astuces pour Windows et Linux !.

Sommaire

Sécurité

Apache, dans son fichier de configuration (httpd.conf ou apache.conf), peut interdire l'accès au fichiers .ht* (.htpasswd ou .htaccess).

Théoriquement ces lignes de configuration sont présents par défaut :

<Files ~ "^\.ht">
 Order allow,deny
 Deny from all
 </Files>


Techniques de cache

Utiliser le cache par fichier .htaccess permet d'augmenter la vitesse d'affichage d'un site.

Cependant il est important de comprendre comment fonctionne le cache, le controle de celui-ci et les autres headers comme les options HTTP avant d'implémenter ceci sur un serveur en production.

Pour ce faire, il faut lire l'article nommé Cache Apache.

Voir le code source sans exécuter

Au lieu d'exécuter un script (perl, cgi, python) et que vous désirez voir le code source du fichier en question, utilisez les propriétés suivantes dans un .htaccess :

RemoveHandler cgi-script .pl .py .cgi

Exemples de fichier .htaccess

Limitation d'accès sur un fichier précis

<Files "fichier.html">
 AuthUserFile ''/var/www/vhosts/domain.tld/.htpasswd''
 AuthGroupFile /dev/null
 AuthName "''Phrase d'accès limité.''"
 AuthType Basic
 <LIMIT GET POST>
 require user ''username''
 </LIMIT>
 </Files>

Créer un fichier .htpasswd

Voici une commande d'exemple :

htpasswd -c /var/www/vhosts/domain.tld/.htpasswd username

Le système demande alors le mot de passe qu'il faut spécifier.

Limitation par host ou user, au choix

Si vous désirez partager un intranet, sans authentification quand on y accède au réseau local, et avec authentification par nom d'utilisateur et mot de passe quand on y accède depuis l'extérieur, vous pouvez vous inspirer de cet exemple :

Order deny,allow
Deny from all
AuthName "Mon intranet"
AuthUserFile /home/windowslinux.net/.htpasswd
AuthType Basic
Require valid-user
Allow from 192.168.0.0/24 w3.org
Satisfy Any

En plus des IP locales, la validation du code source par w3.org reste possible.

Rediriger tout le monde vers un site donné, excepté le réseau local

ErrorDocument 403 http://www.windowslinux.net
Order deny,allow
Deny from all
Allow from 192.168.0.0/24

Ne pas afficher dans le navigateur, proposer le téléchargement de fichiers donnés

AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .mov
AddType application/octet-stream .pdf

Liens

Externes

Un mémo très utile : http://www.thejackol.com/htaccess-cheatsheet/

Article de Security Focus : partie 1 et partie 2.

Internes

Voir aussi la page d'Apache