En général, le problème n'est pas de protéger une page, mais de protéger le répertoire qui la contient. Avec Apache, vous pouvez mettre un fichier
.htaccess dans le répertoire à protéger.
Vous devez également avoir activé l'option
AllowOverride AuthConfig dans le fichier de configuration d'Apache. Par exemple, pour protéger l'application se trouvant dans
/opt/www/appli, éditez votre fichier
/etc/apache2/conf.d/appli.conf que vous aviez déjà édité pour déclarer votre application. Au lieu de
AllowOverride None, mettez
AllowOverride AuthConfig. S'il s'agit des pages web de
/opt/www/htdocs, le fichier à modifier sur Ubuntu est
/etc/apache2/sites-enabled/000-default.
Faites attention ! Vous ne devez jamais modifier les permissions pour le répertoire
/. Celui-ci ne doit pas être accessible depuis votre site web. Modifiez bien
AllowOverride AuthConfig pour /opt/www/htdocs.
Le contenu du fichier
.htaccess est généralement toujours comme ceci :
AuthType Basic
AuthUserFile /opt/www/etc/htpasswd
AuthName "Private zone"
require user papamaman
require user copain1
require user copain2
La première ligne est à laisser telle quelle. La deuxième indique où est stockée la liste des utilisateurs et leur mot de passe. La troisième vous permet d'indiquer un message justifiant la boîte d'authentification qui apparaîtra à l'utilisateur. Puis vous pouvez indiquer une liste d'utilisateurs. Nous en avons indiqué ici trois :
papamaman,
copain1 et
copain2.
Pour mettre un mot de passe à ces utilisateurs, utilisez le programme
htpasswd. La toute première fois, indiquez l'option
-c pour également créer le fichier.
Voici ce que cela donne :
$ mkdir /opt/www/etc
$ htpasswd -c /opt/www/etc papamaman
New password:
Re-type new password:
Adding password for user papamaman
$ htpasswd copain1
New password:
Re-type new password:
Adding password for user copain1
$ htpasswd copain2
New password:
Re-type new password:
Adding password for user copain2
Il ne vous reste plus qu'à vérifier que le répertoire est effectivement protégé.
Retrouvez cet article dans : Linux Pratique Hors série 5
Bonjour,
merçi pour cette astuce mais comment fait on si notre site web est chez un hebergeur comme free par exemple.
Nous n’avons pas la main pour executer la commande htpasswd.