htaccess proteção de diretório no Apache 2.4

2

Estou tentando descobrir como proteger uma pasta no Apache 2.4.

Eu tenho esta parte funcionando bem:

AuthUserFile   /home/test/web/site.com/cgi-bin/hotels/admin/.htpasswd
AuthGroupFile  /dev/null
AuthType       Basic
AuthName       Protected

require valid-user

... mas também quero adicionar a opção de me permitir entrar sem precisar fazer login. Isso é o que eu tinha no meu antigo servidor:

Order Deny,Allow
Deny from all
Allow from 123.123.123.123
Satisfy Any

mas o novo apresenta um erro:

client denied by server configuration: /home/test/web/site.com/cgi-bin/hotels/admin/admin.cgi

Analisando o link , eu teria assumido que isso funcionaria:

Require all denied
Allow from 123.123.123.123
Satisfy Any

... mas não parece (nem sequer pede um login agora, mesmo quando eu mudo o IP aceito para um aleatório)

O que estou perdendo?

    
por Andrew Newby 20.04.2017 / 17:34

1 resposta

5

Não misture diretivas 2.2 e 2.4 como essa. Satisfazer / Encomendar / Permitir / Negar são todos 2.2.x

Use somente o 2.4 e descarregue o mod_access_compat:

AuthType Basic
AuthName "Authorized Users Only"
AuthBasicProvider file
AuthUserFile /home/test/web/site.com/cgi-bin/hotels/admin/.htpasswd
<RequireAny>
Require valid-user
Require ip 123.123.123.123
</RequireAny>

Nota: o htaccess não tem nada a ver com a proteção de diretórios, se você tiver acesso aos principais arquivos de configuração do servidor httpd apache, defina esses todos dentro de uma tag <Directory /filesystem/path/to/protected/dir>

Nota2: Esqueceu de mencionar, RequireAny foi especificado para fins de exemplo, mas esse é o comportamento padrão em 2.4.x, então você não precisa realmente especificá-lo se não quiser.

    
por 20.04.2017 / 17:57

Tags