| AuthName "bla bla bla"
AuthType Basic AuthUserFile private/liste.pw Require valid-user |
Le fichier de mot de passe contient une suite de lignes
| nom1:password1
nom2:password2 nom3:password3 |
Mais ceci (qui est standard) ne fonctionne pas chez Free ! il faut utiliser la syntaxe :
|
PerlSetVar AuthFile private/liste.pw
AuthName "bla bla bla" AuthType Basic Require valid-user |
Et donc pour avoir un .htaccess qui marche aussi bien chez Free qu'en local, utiliser des '<ifDefine Free>'
|
<ifDefine Free>
PerlSetVar AuthFile private/liste.pw </ifDefine> <ifDefine !Free> AuthUserFile private/liste.pw </ifDefine> |
Enfin il est recommandé de cacher le fichier de mots de passe, soit en faisant confiance au serveur et en commençant son nom par '.' (.htpasswd), soit par un deny from all.
| Order Deny,Allow
Deny from all Allow from xxx.xxx.xxx.xxx |
Ceci permet de n'autoriser l'accès (HTTP) que depuis l'IP xxx.xxx.xxx.xxx
Sans Allow, le site est complètement inaccessible (erreur 403)
Important : ceci n'est testé que lors d'une demande HTTP (GET, HEAD etc... ),
pas lors d'un accès au système de fichier par php (include, open de fichiers)
ou par apache lui même (fichier htpasswd).
Ceci permet de protèger l'accès aux répertoires contenant des
"informations sensibles" sous forme de fichiers à inclure,
seuls ces répertoires ayant un Deny from all
Bien entendu, le répertoire contenant un fichier de mot de passe doit être protégé ainsi.
Il est possible de limiter l'accès à certains fichiers seulement, par la commande
|
<Files toto>
Order Allow,Deny Deny from all </Files> |
Nota : une seule commande <Files > dans le fichier .htaccess.
Pour plusieurs fichiers à protèger, on peut mettre des '*', par exemple <Files *.inc>
pour protéger l'accès à tous les fichiers d'extension inc
La doc Apache donne la syntaxe avec expressions régulières
<Files ~ "\.(gif|jpe?g|png)$">
Pas dit que ça fonctionne chez Free...
En tout cas, la fonction équivallente <FilesMatch regex> ne fonctionne pas...
D'autres erreurs sont aussi personnalisables de cette façon :
Pour avoir un .htaccess fonctionnant aussi bien chez Free qu'ailleurs (en local pour test par exemple) :
| <ifDefine Free>
php 1 </ifDefine> |
| AddType | permet de modifier les types MIME et les associations de fichiers | ... |
L'appel de fonctions inactivées, ainsi que toute erreur de syntaxe dans un .htaccess provoque une erreur 500.