Protéger votre site web ou un répertoire par un fichier .htaccess

Si vous souhaitez mettre en place sur votre site web ou un répertoire spécifique un accès limité par un couple d'identifiant/mot de passe, nous vous invitons à utiliser un fichier .htaccess lié à un fichier .htpasswd.

Voici un exemple :

1 - Créer le fichier .htpasswd

Le fichier .htpasswd est à générer via la commande htpasswd sous Linux ou bien vous pouvez utiliser un outil d'encryptage de password tel que : http://www.4webhelp.net/us/password.php

Le contenu de votre fichier est présenté sous la forme utilisateur:motdepasse, par exemple :

ryan:oeteHNuwJnH7k

Vous pouvez également avoir plusieurs utilisateurs dans le même fichier. Il suffit de mettre les autres à la ligne, par exemple :

ryan:oeteHNuwJnH7k
bob:13ZfyRhVBrhhU

Une fois le fichier .htpasswd prêt il vous suffira de le déposer (uploader) sur votre instance (en ASCII et non pas en BINARY) dans le répertoire vhosts/ correspondant à votre site, comme ceci:

/srv/data/web/vhosts/www.mysite.com/.htpasswd

Ne placez pas le fichier .htpasswd dans le répertoire htdocs/ !

2 - Créer votre fichier .htaccess

Ajoutez dans un fichier .htaccess (son nom ne peut être modifié, c'est un standard du serveur web Apache)

AuthUserFile /srv/data/web/vhosts/www.mysite.com/.htpasswd
AuthName "Zone protégée par mot de passe"
AuthType Basic

<limit GET POST>
require valid-user
</limit>

Déposez le fichier à la racine du dossier /htdocs/ de votre virtualhost pour protéger tout le site web ou bien dans un répertoire précis si vous voulez protéger uniquement cette partie de votre site web (comme un répertoire admin contenant des outils de backoffice par exemple).

:?: Dans votre fichier après AuthUserFile il faut indiquer le chemin absolu pour le fichier .htpasswd, c'est à dire l'endroit où est situé le fichier sur votre serveur. Attention cependant, ce chemin n'est pas exactement le même que celui indiqué en sFTP mais se présente ainsi :

/srv/data/web/vhosts/www.mysite.com/.htpasswd

Si vous avez un doute, créez un fichier .php dans votre dossier /htdocs/ et incluez le code suivant qui vous retournera le chemin absolu pour votre instance :

<?php echo realpath('chemin.php'); ?>

:?: Vous pouvez personnaliser le nom de la zone protégée en modifiant le message entre guillemets après AuthName.

Si vous utilisez un outil de création en ligne pour votre .htaccess ou que vous vous référez à une documentation externe notez que votre fichier ne doit en aucun cas contenir la ligne suivante :

AuthGroupFile /dev/null

Si cette ligne est présente votre instance Simple Hosting retournera alors une erreur. Il est donc important de ne pas l'ajouter.

Dernière modification: le 31/12/2012 à 14:13 par Arnaud V. (Gandi)