Sur mon serveur, j’ai le fichier .htaccess suivant:
DirectoryIndex index.php AuthType Basic AuthName "Password Required" AuthUserFile /var/www/webinterface/.htpasswd Options +FollowSymLinks Require valid-user Satisfy any Allow from *
Si je demande l’URL “IP-ADDRESS / index.php”, tout fonctionne bien, j’obtiens l’index.php affiché sans invite d’authentification. Cependant, dès que je demande “IP-ADDRESS /”, le navigateur me demande mes identifiants.
pourquoi est-ce le cas? Qu’est-ce que je rate?
Essayez de remplacer le bloc pour utiliser mod_setenvif pour vérifier l’URI de la demande au lieu d’utiliser
. Les modules mod_auth * ont priorité sur mod_dir, de sorte que le mappage de /
vers /index.php
ne se produit pas avant que l’authentification ait lieu. Mod_setenvif se produira avant l’authentification. Essayer:
SetEnvIf Request_URI "^/$" allow=yes SetEnvIf Request_URI "^/index.php$" allow=yes AuthType Basic AuthName "Password Required" AuthUserFile /var/www/webinterface/.htpasswd Options +FollowSymLinks Order Deny,Allow Satisfy any Deny from All Require valid-user Allow from env=allow
Si l’URI demandé est exactement /
ou /index.php
, la variable allow
est définie. Les éléments situés après les lignes d’authentification indiquent qu’il faut tout refuser sauf un utilisateur valide ou si la variable allow
a été définie.