
Quando se trata de configurar a proteção BasicAuth para um diretório específico, eu uso uma configuração simples (no apache2.conf
arquivo):
<Directory /var/www/somedir/>
Deny from all
AuthUserFile /var/pswd/somedir/.htpasswd
AuthName authorization
AuthType Basic
Satisfy Any
require valid-user
</Directory>
Mas eu gostaria de definir o BasicAuth em todos os lugares do servidor por padrão e desbloqueá-lo apenas para diretórios específicos (sites, domínios).
Então, como alguém poderia definir o BasicAuth em qualquer lugar do servidor, exceto em determinados diretórios?
Responder1
Qualquer definição subsequente deve substituir uma definição anterior nos arquivos de configuração do Apache. Tente o abaixo, deve consertar.
<Directory /var/www/>
Order deny,allow
Deny from all
AuthUserFile /var/pswd/somedir/.htpasswd
AuthName authorization
AuthType Basic
Satisfy Any
require valid-user
</Directory>
Alias /path/to/opendir/ /public
<Directory /var/www/opendir/>
Allow from all
</Directory>
Você também pode usar .htaccess
para controlar isso adicionando:
Override Auth
Allow from all
Satisfy any
Responder2
Isto é para sua autenticação principal
<Directory /var/www/somedir/>
Order deny,allow
Deny from all
AuthName "User Authentication"
AuthType Basic
AuthUserFile /var/pswd/somedir/.htpasswd
Require valid-user
</Directory>
isto é para a exceção da sua pasta
<Directory /var/www/somedir/accessibleDir/>
Allow from all
</Directory>
para adicionar um usuário à sua lista de usuários, use:
htpasswd -b -m /var/pswd/somedir/.htpasswd {User} {Pass}
tente não usar .htaccess, se puder, para reduzir o acesso ao disco rígido, você aumentará o desempenho do seu site assim.