Como definir o BasicAuth em todos os lugares, EXCETO determinados diretórios

Como definir o BasicAuth em todos os lugares, EXCETO determinados diretórios

Quando se trata de configurar a proteção BasicAuth para um diretório específico, eu uso uma configuração simples (no apache2.confarquivo):

<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 .htaccesspara controlar isso adicionando:

Override Auth
Allow from all
Satisfy any

Para mais informações veja: aqui,aqui,aqui&aqui

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.

informação relacionada