La protection htaccess sert à empêcher l'accès à une partie de votre site, ceci par un mot de passe de façon simple et efficace puisque la configuration se passe au niveau du serveur web.
Généralement on s'en sert pour réserver l'accès à un répertoire à un cercle fermé de personnes.
/!\ A savoir : la protection est différente pour l'hébergement chez Free, voir la fin de l'article pour cela.
Le fichier .htaccess
Ce fichier contient les directives de protection. Il commence par un point, sous Windows il est impossible de le mettre, il faudra donc le renommer une fois sur votre serveur. Sous Linux attention, il sera donc considéré comme un fichier caché.
Protection par mot de passe
AuthUserFile /chemin/vers/votre/fichier/.htpasswd
AuthGroupFile /dev/null
AuthName Protection par mot de passe
AuthType Basic
<limit GET>
require valid-user
</limit>
Dans cet exemple, la première ligne consiste à donner le chemin d'accès au fichier .htpasswd, lequel contiendra les logins & mots de passe respectifs des utilisateurs ayant accès à cette zone protégée, ceux-ci étant demandés lors de la connexion au dossier contenant la protection htaccess.
"AuthUserFile" permet de donner des accès par utilisateur (attention, ils sont différents des utilisateurs Unix du système !)
"AuthGroupFile" fait de même avec un groupe d'utilisateurs, la directive /dev/null permettant ici de gérer les accès uniquement par utilisateurs singuliers
"AuthName" donne le titre de la zone protégée
"AuthType" définit le type de protection
Dans ce fichier, on met les directives de restriction d'accès entre les balises "limit".
"require valid-user" signifie qu'il faut que le login et le mot de passe entrés soient inscrits dans le fichier .htpasswd défini au-dessus.
Si vous voulez restreindre l'accès à certaines personnes présentes dans le fichier, vous pouvez sélectionner comme ceci :
<limit GET>
require user marion germaine paul
</limit>
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName AccesRestreint
AuthType Basic
<limit GET>
order deny,allow
deny from all
allow from .com
</limit>
Protection par accès partiel
Cela permet d'accepter toutes les connexions sauf celles précisées :
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName AccesRestreint
AuthType Basic
<limit GET>
order allow,deny
allow from all
deny from free.fr
</limit>
Le fichier .htpasswd
Ce fichier contient les logins & mots de passe respectifs des utilisateurs ayant accès à cette zone protégée, ceux-ci étant demandés lors de la connexion au dossier contenant la protection htaccess.
Il est à noter qu'on peut mettre ce fichier n'importe où, à l'exception du dossier protégé lui-même. Généralement on essaye de le dissimuler un peu par mesure de sécurité.
Il est simple à comprendre, il est sous la forme
utilisateur:motdepassecrypté
Attention ! Les utilisateurs ne sont pas à confondre avec les users Unix du système, ils sont créés par la commande :
$ htpasswd -c utilisateur
Adding password for utilisateur
New password:
Re-type new password:
$
Pour les autres utilisateurs, une fois le fichier créé, c'est pareil, sauf qu'on omet l'option -c mais que l'on ajoute le fichier existant (exemple : htpasswd .htpasswd marion).
La configuration de Apache
Si vous êtes chez un hébergeur, la fonctionnalité htaccess devrait être autorisée par défaut, mais vérifiez tout de même si cela ne fonctionne pas. Si vous administrez votre propre serveur, il est à noter qu'il faut modifier le fichier de configuration d'Apache pour permettre cette protection htaccess.
Dans Apache, modifiez le fichier de configuration (généralement httpd.conf ou encore httpd.conf.default...) et ajoutez la directive :
AccessFileName .htaccess
De plus par défaut vous trouverez plus bas la directive :
AllowOverride None
Qui est à remplacer par :
AllowOverride AuthConfig
ou
AllowOverride All
Faute de quoi vous ne pourrez pas redéfinir les droits d'accès à vos fichiers et donc la présence d'un fichier .htaccess n'aura aucun impact sur l'accès à votre dossier/site.
Pour Free
Direction là-bas :
http://support.free.fr/pagesperso/scripts2.html
Les fichiers sont un peu particuliers...