Requisito de autenticação do Apache com base na localização

1

Estou tentando configurar meu servidor apache para ter a seguinte regra. Se a solicitação vier de 192.168. . , nenhuma autenticação é necessária. Mas de qualquer outro lugar, eu quero exigir que eles façam login.

Até agora eu tenho a segunda parte configurada:

Alias /Downloads "D:/Downloads"
<Directory "D:/Downloads">
    Options All Indexes
    AllowOverride AuthConfig
    Allow from all
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile D:/Webserver/apache_auth_files/.htpasswd-users
    Require user myuser_name
</Directory>

Mas como faço para criar uma exceção na regra para permitir 192.168. . para não requerer autenticação?

    
por Churk 17.12.2011 / 00:02

1 resposta

4

O que você está procurando é Satisfy Any - ele permite acesso se alguém atender à ACL IP ou à diretiva Require , eles não precisam atender a ambos, portanto, um usuário fora o intervalo de IPs deve autenticar, mas um usuário dentro dele não.

Tente isto:

Alias /Downloads "D:/Downloads"
<Directory "D:/Downloads">
    Options All Indexes
    AllowOverride AuthConfig
    Satisfy Any
    Order deny,allow
    Deny from all
    Allow from 192.168.0.0/16
    AuthType Basic
    AuthName "Restricted Files"
    AuthUserFile D:/Webserver/apache_auth_files/.htpasswd-users
    Require user myuser_name
</Directory>
    
por 17.12.2011 / 00:05