Authentification HTTP conditionnelle avec un htaccess

18 Février 2014

Il n’y a pas mieux que l’authentification Basic de HTTP pour rapidement restreindre l’accès à un site en cours de développement pour qu’un client puisse le tester sans qu’il ait besoin de bidouiller les entrées son fichier hosts. Ainsi le site est «protégé» par un couple user/password mais accessible avec une URL publique, bien pratique mais c’est encore mieux si la configuration de l’authentification est toujours active sauf pour la machine de développement…

Comme annoncé, tout se passe dans le fichier .htaccess, il suffit d’ajouter le snippet suivant et remplacer «monsite.com» par le nom de domaine de votre site en développement et c’est tout !

AuthType Basic
AuthUserFile /var/www/monsite.com/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted area"
Require valid-user

SetEnvIfNoCase Host ^www.monsite.dev$ DEV_MODE
Satisfy any
Allow from env=DEV_MODE
Deny from all

Voici les explications nécessaires pour comprendre ce qui se passe avec cet .htaccess. C’est vraiment très simple, les 5 premières lignes correspondent à la configuration pour la mise en place de l’authentification HTTP Basic. La partie qui nous intéresse se situe dans le second bloc :

La ligne importante est Satisfy any car c’est elle qui permet d’autoriser l’accès si la variable DEV_MODE existe.

Voilà, avec ce petit bout de conf plus besoin de faire des manipulations manuelles et de prendre le risque d’erreurs de configuration, je déploie toujours le même htaccess que j’ai en local et qui n’active l’authentification HTTP que lorsque je ne suis plus en dev, l’URL du site peut changer l’authentification HTTP sera toujours activée.

Pratique.

Charger les commentaires…