L’une des tâches standard qui peut être résolue à l’aide de .htaccess est la restriction de l’accès à un répertoire spécifique sur le serveur. Par exemple, vous devez donner accès à un certain répertoire à des visiteurs individuels, en leur fournissant un identifiant et un mot de passe uniques.
Dans le répertoire auquel nous voulons restreindre l’accès par mot de passe, nous créons un fichier .htaccess avec les directives suivantes :
AuthType Basic
AuthName "Some Name"
AuthUserFile /home/uXXXXX/.htpasswd
require valid-user
Le chemin /home/uXXXXX/.htpasswd indique le chemin complet vers le fichier de mots de passe sur le disque de notre serveur. Si, par exemple, vous placez le fichier .htpasswd (il contiendra les mots de passe) dans votre répertoire personnel, auquel vous accédez en vous connectant au serveur via FTP, le chemin vers ce fichier ressemblera à /home/uXXXXX/.htpasswd , où uXXXXX est le nom de vos sites virtuels (par exemple, u12345 ).
Dans la directive AuthUserFile, nous spécifions le chemin absolu vers le fichier contenant les identifiants/mots de passe, que nous créerons un peu plus tard. Si vous créez le fichier .htaccess sur votre ordinateur, et non directement sur le serveur à l’aide d’un éditeur de texte, veuillez noter que le fichier .htaccess doit être transféré via FTP strictement en mode texte (ASCII).
Créez un fichier de mots de passe. Le fichier de mots de passe doit contenir des lignes telles que login: password . Le mot de passe doit être chiffré à l’aide de l’algorithme MD5. Une façon de créer un tel fichier est d’utiliser le programme fourni avec Apache – htpasswd (sur notre serveur, il se trouve dans le répertoire /usr/local/bin/ , le chemin complet est /usr/local/bin/htpasswd ).
Voyons comment créer un fichier de mots de passe dans le shell Unix directement sur le serveur. Allons dans le shell et exécutons les commandes suivantes :
htpasswd -mbc .htpasswd user1 sNQ7j9oR2w
htpasswd .htpasswd user2
Ajoutez user2 au fichier .htpasswd existant et entrez le mot de passe manuellement en réponse à la demande du programme correspondant.
Si vous utilisez Windows et ne souhaitez pas utiliser le shell Unix pour générer des mots de passe, vous pouvez télécharger la version Windows du programme htpasswd ici et créer un fichier avec les mots de passe sur votre ordinateur, puis le télécharger sur le serveur. Si vous avez déjà installé une version Windows d’Apache, le fichier htpasswd.exe se trouve dans le répertoire Program Files\Apache Group\Apache\bin\ .
Alors, récupérez htpasswd.exe et utilisez-le pour générer des mots de passe comme celui-ci :
htpasswd.exe -mc .htpasswd user1
créer un nouveau fichier de mot de passe htpasswd.exe, le mot de passe et sa confirmation seront demandés de manière interactive
htpasswd.exe -m .htpasswd user2
ajoutez l’utilisateur user2 au fichier de mot de passe existant htpasswd.exe, en demandant le mot de passe de manière interactive.
Une fois toutes les connexions créées, le fichier doit être téléchargé sur le serveur.