Voici un snippet que j’ai eu du mal à trouver au complet, servant à protéger l’accès à un dossier sous Apache avec un fichier .htaccess et un fichier .htpasswd, sauf pour une IP qui sera authentifiée automatiquement.

Pratique pour une preprod de site web, par exemple.

Order deny,allow
Deny from all
# Le chemin complet du fichier htaccess
AuthUserFile /var/www/projet/.htpasswd
# Le nom qui s'affichera pour les visiteurs
AuthName "Preprod Projet Internet" 
AuthType Basic 
Require valid-user 
# Votre IP ici
Allow from 8.8.8.8
Satisfy Any

Si comme moi vous passez derrière un reverse proxy comme Nginx, l’IP n’est pas transmise directement. Il faudra alors tricher en rajoutant quelques lignes :

# Votre IP ici
SetEnvIF X-Forwarded-For "8.8.8.8" AllowIP
Order deny,allow
Deny from all
AuthUserFile /var/www/projet/.htpasswd
AuthName "Preprod Projet Internet" 
AuthType Basic 
Require valid-user 
# La ligne permettant de récuperer l'IP transmise
Allow from env=AllowIP
# Votre IP ici, au cas où vous avez un accès via Apache
Allow from 8.8.8.8
Satisfy Any

Les sources qui m’ont le plus aidé : Ask Apache & freistil Help Center

Tags : , ,