Ativando a autenticação básica no diretório do usuário apache do contexto Directory em vez do arquivo .htaccess

1

Eu habilitei os diretórios de usuários do Apache no meu servidor Ubuntu. O usuário pode agora carregar seu diretório /home/username/public_html do navegador, visitando http://example.com/~username .

Estou tentando proteger com senha esses diretórios. Consegui fazê-lo funcionar bem usando um arquivo .htaccess , mas eu preferiria ativar a autenticação do contexto do Diretório. Este é o meu arquivo de configuração para o módulo de diretório do usuário, localizado em /etc/apache2/mods-enabled/userdir.conf :

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AuthType Basic
                AuthName Private
                Authuserfile /etc/apache2/.htpasswd
                Require valid-user

                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Require all granted
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Require all denied
                </LimitExcept>
        </Directory>
</IfModule>

Quando navego no meu navegador para um dos diretórios do usuário, ele nem me solicita uma credencial. Quando eu voltar para o método .htaccess , ele funciona corretamente.

Eu recarreguei o apache depois de cada alteração que fiz no arquivo de configuração do diretório do usuário. Por que a autenticação não está funcionando no contexto do Diretório?

    
por flyingL123 25.06.2015 / 22:24

1 resposta

1

Coloque as diretivas de autenticação em uma diretiva Location separada, assim:

<IfModule mod_userdir.c>
    <Location ~ "/~.*">
        AuthType Basic
        AuthName Private
        Authuserfile /etc/apache2/.htpasswd
        Require valid-user
    </Location>
</IfModule>

Isso ativará a autenticação de senha para todos os caminhos que começam com "/ ~".

    
por 26.06.2015 / 16:51