Apache authentification de base à l'exception de ceux Autorisés
Problème: j'ai des fichiers dans /var/www/fichiers/que je veux qu'ils soient accessible à partir des adresses IP spécifiques, SANS exiger d'utilisateur/mot de passe. Cependant, je voudrais que toute autre adresse IP DOIT exiger de connexion pour accéder.
C'est dans mon httpd.conf:
<Directory /var/www/files/>
Order deny,allow
Deny from all
Allow from 192.168
AuthUserFile /etc/apache2/basic.pwd
AuthName "Please enter username and password"
AuthType Basic
Require user valid-user
</Directory>
Mais, si j'ai bien compris, cela signifie que tout client venant de 192.168.* auront accès à ce répertoire, MAIS il faudra un utilisateur valide pour afficher son contenu. Et à toute autre adresse IP sera refusé. droit?
Vous en remercie d'avance.
- Refuser tout est faux syntaxe n'est-ce pas? J'ai dû utiliser "Deny from All"
- Oui, vous avez raison. Je vais le corriger.
Vous devez vous connecter pour publier un commentaire.
modifier: c'est peut-être accepté de répondre, mais vieux. Pour les nouveaux installe Apache, utilisez Brians réponse ici
Ajouter ceci:
Satisfy Any
(ce qui signifie l'un de ces 2 devrait être adopté).Et la syntaxe est:
Ou:
C'est comment on fait pour Apache 2.4+ (depuis
Satisfy Any
n'est plus supporté).Si vous voulez avoir besoin de l'adresse IP -et - Login/Mot de passe, changement
<RequireAny>
à<RequireAll>
J'espère que cela aide quelqu'un - comme il m'a fallu un certain temps pour comprendre.
Si votre serveur est derrière un proxy, vous ne pouvez pas compter sur les
Require ip
directement. Toutefois, vous pouvez utiliser lerequire env
:La source de l'idée
J'ai aussi vérifié de nombreuses variantes. ce code üorks avec la version 2.4 de apache 100%