Cette FAQ a pour but de vous apprendre à protéger par mot de passe l'accès à un répertoire.
Tout d'abord, sachez que si vous étiez auparavant hébergé chez Free.fr et que vous aviez déjà mis en place une procédure d'accès restreint en suivant la documentation de Free, cet accès restreint ne fonctionnera pas sur NFrance (en fait, il ne fonctionnera que chez Free.fr car ils utilisent une procédure non standard)
Ensuite, si vous étiez auparavant hébergé chez un hébergeur utilisant une procédure Apache standard (par .htaccess) et que vous aviez déjà mis en place une procédure d'accès restreint, vous n'aurez certainement qu'à modifer les chemins dans le .htaccess et ça devrait fonctionner.
Avant de commencer, vous devez connaître le chemin de la racine de votre compte (cela ressemble à /home/juXXXXX). Pour cela, il vous suffit de créer un fichier avec l'extension .php (par exemple, racine.php) et de le transférer sur votre compte puis de l'appeller avec votre navigateur. Le fichier en question doit contenir :
<?php print($_SERVER["DOCUMENT_ROOT"]); ?>
Edit : pour les Web1, consultez votre chemin à la racine la commande suivante :
<?php print($_SERVER['PATH_TRANSLATED']); ?>
Il est également à noter que vous devrez créer tous les fichiers mentionnés dans cette FAQ avec un vrai editeur de texte et non pas un logiciel de traitement de texte. (sous Windows, utilisez le Bloc Notes ; sous MacOS X, TextEdit devrait faire l'affaire si vous arrivez à le forcer à enregister en texte simple et non pas en RTF ; sous Unix, je suppose que ce n'est pas la peine que je vous explique que vous avez le choix des moyens : kEdit, gEdit, vim, emacs, etc …)
Les règles régissant l'accès à votre répertoire seront stockées dans un fichier nommé .htaccess (note pour les utilisateurs de Windows : il est conseillé de nommer votre fichier toto.txt par exemple et de le renommer en .htaccess une fois sur le serveur FTP, ça vous évitera de devoir vous battre avec Windows car il ne voudra pas de ce nom).
Votre .htaccess doit au minimum contenir :
AuthUserFile /racine/nom_du_répertoire/.htpasswd AuthName REALM AuthType Basic require valid-user
où /racine est à remplacer par la racine déterminée précédement, nom_du_répertoire par le nom du répertoire où se situe le .htpasswd (que l'on créera ensuite, pour des raisons de simplicité, il vaut mieux que le .htpasswd soit situé dans le répertoire à protéger). REALM est l'étendue de validité de votre protection, à moins que vous n'ayez des besoins spécifiques (qui seront couverts à la fin de cette FAQ) choisissez juste un nom qui fera joli dans la boîte de dialogue du navigateur, genre Mon repertoire prive rien qu'a moi
(voir ci-dessous, l'exemple pris ici est MS Internet Explorer 6) (attention : éviter les caractères accentués, spéciaux … et si le REALM se compose de plusieurs mot, mettez le entre guillemets doubles, comme ceci “REALM en plusieurs mots”)
La liste des utilisateurs et mots de passe est stockée dans un fichier nommé .htpasswd (pour les utilisateurs de Windows, même remarque, toto2.txt puis renommer sur le FTP), il se compose d'un couple nom d'utilisateur:mot de passe crypté par ligne, comme ceci :
utilisateur1:m0tD3p4ssCrYPt3 utilisateur2:P4S5W0Rd utilisateur3:s3cR3t
Pour crypter vos mots de passe, utilisez notre outil disponible à http://faqs.les-basics-nfrance.com/crypt.php
Transférez les deux fichiers (attention : en mode ASCII) vers votre FTP. Si vous utilisez Windows, n'oubliez pas de renommer les fichiers (si vous avez gardé les mêmes noms que dans cette FAQ, renommez toto.txt en .htaccess et toto2.txt en .htpasswd). Ca y est ! Vous n'avez plus qu'à tester
Je veux protéger plusieurs répertoires
Si vous désirez protéger plusieurs répertoires avec les mêmes mots de passe, copiez simplement le .htaccess dans chaque répertoire à protéger (par contre un seul .htpasswd suffit)
Si vous désirez utiliser des logins/pass différents en fonction des répertoires, vous avez plusieurs solutions, soit utiliser un .htaccess et un .htpasswd par répertoire soit utiliser le même .htpasswd pour tous les répertoire en y mettants tous les utilisateurs, puis dans le .htaccess de chaque répertoire, spécifier explicitement les utilsateurs autorisés, en remplaçant
require valid-user
par
require user utilsateur1 utilisateur3
dans chaque répertoire (bien entendu, dans chaque répertoire, adapter la liste).
A noter, que si vous utilisez le même REALM pour tous vos répertoires, le navigateur ne demandera pas à l'utilisateur de s'identifier si il à déjà accédé à l'un des répertoires avec des login/pass valides. Par contre, si vous utilisez des REALM différents, les utilisateurs devront se réidentifier séparément pour chaque répertoire.
Félicitations, vous avez gagné le droit d'aller lire la documentation (en Anglais) de Apache (le logiciel de serveur Web utilisé par NFrance) située à http://httpd.apache.org/docs/howto/auth.html
Note : seule la méthode nommée Basic authentication est disponible sur les Basics NFrance