Created: 2010-04-30 17:09 Updated: 2010-04-30 17:09

Numa instalação do Apache num Debian Squeeeze, precisei fazer o seguinte para habilitar o uso do .htaccess que serve, entre outras coisas, para restringir o acesso a determinados diretórios disponíveis no servidor Web Apache.

Observe, no entanto:

Vamos lá: o nosso objetivo é restringir o acesso a um diretório do site, OK? Pois bem, primeiro vamos criar o arquivo .htaccess (observe o o ponto no início do nome do arquivo) com o seguinte conteúdo:

AuthName "Acesso Restrito"
AuthType Basic
AuthUserFile /etc/apache2/htpasswd-restrito
require valid-user

Onde:

Como estou assumindo que o administrador do sistema é quem está fazendo esta configuração, coloquei o arquivo de senhas no /etc/apache2.

No diretório especificado em AuthUserFile, crie o arquivo de usuários e senhas com o comando htpasswd:

 htpasswd -c htpasswd-restrito USUARIO
New password:
Re-type new password:
Adding password for user USUARIO

Obviamente, o texto USUARIO dever ser substituído pelo nome do usuário.

Quase pronto: agora falta configurar o Apache para entender isso...

Vá para o diretório /etc/apache2/sites-enabled e edite o arquivo 000-default, procure pela diretiva que aponta para o diretório-raiz do servidor Web e altere a diretiva AllowOverride de None para All, conforme o exemplo a seguir:

Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all

Habilite o módulo rewrite do servidor:

a2enmod rewrite

Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Reinicie o apache:

invoke-rc.d apache2 restart

Pronto, agora deve funcionar!

Sds,

Marião