Autenticação · 5 min read · Jan 04, 2026
.htaccess Baseada em Autenticação em Subdiretórios
.htaccess Baseada em Autenticação em Subdiretórios
Autor: Nayyar Ahmad
Contato: nayyares AT gmail DOT com
Página Inicial: www.cbtcandy.org
Dedicação: A Baji, por todos os esforços que ela fez por mim.
Prefácio:
.htaccess é usado para fornecer a facilidade de mudar a configuração por diretório, este arquivo pode conter uma ou mais diretivas que serão forçadas no diretório que contém o arquivo .htaccess.
.htaccess é um nome popular para este arquivo de modificação de configuração, você pode mudar este nome padrão alterando o parâmetro AccessFileName no arquivo de configuração do Apache. i.e.
AccessFileName .anynameNeste tutorial, eu vou tomar um cenário fictício de dois subdiretórios em nível paralelo e implementarei autenticação por senha em ambos. Isso significa que apenas aqueles usuários que têm o nome de usuário e a senha corretos podem acessar esses diretórios.
Então começa :)
Aqui estou assumindo que seu diretório DocumentRoot é /var/www/html, mas se você tiver configuração de VirtualHost ou mesmo o Apache estiver configurado em algum outro diretório raiz, então você pode ajustar isso de acordo com sua situação.
Nota: Eu vou usar dois nomes fictícios para esses diretórios como test-dir1 e test-dir2.
1 Criando Diretório:
$ cd /var/www/html$ mkdir test-dir1$ mkdir test-dir22 Criação de Arquivo HTML de Teste:
Criando arquivo html no primeiro diretório.
$ cd /var/www/html/test-dir1$ cat > index.htm| PÁGINA DE TESTE EM TEST-DIR1. |
Criando arquivo html no segundo diretório.
$ cd /var/www/html/test-dir2$ cat > index.htm| PÁGINA DE TESTE EM TEST-DIR2. |
3 Navegando nas Páginas de Teste:
Agora você pode navegar e testar se as páginas estão disponíveis ou não, abrindo qualquer navegador da web, eu gosto do Firefox (pois é incrível :) ) e digitando:
Isso exibirá a página de teste do primeiro diretório, e
exibirá a segunda página de teste em test-dir2.
Se você conseguir ver ambas as páginas, isso significa que você está quase pronto para arrasar com .htaccess.
4 Criação do Arquivo .htaccess:
$ cd /var/www/html/test-dir1$ vi .htaccessEscreva as seguintes linhas neste arquivo:
| AuthName "Usuários Autorizados Apenas." AuthType Basic AuthUserFile /etc/httpd/conf/.htpasswd require user testusr |
Agora eu vou explicar quais linhas mágicas escrevemos neste arquivo:
O parâmetro AuthName apenas define o título da caixa de entrada de senha quando o usuário faz login, enquanto o AuthType informa ao servidor que tipo de processamento está em uso, e Basic é o mais comum e perfeitamente adequado para quase qualquer propósito. AuthUserFile é usado para definir a localização do arquivo .htpasswd, este arquivo contém a senha do usuário que será autenticado no arquivo .htaccess. require user é usado para identificar o usuário confiável, se houver mais de um usuário confiável, você pode especificar seus nomes em uma lista separada por espaços.
Agora, para proteger test-dir2 com .htaccess, precisamos copiá-lo de test-dir1 para test-dir2 com o seguinte comando:
$ cp /var/www/html/test-dir1/.htaccess /var/www/html/test-dir2/5 Criação de Usuário:
Aqui criaremos um usuário de teste para verificar nosso .htaccess:)
$ adduser testusr$ passwd testusr6 Informando o Apache Sobre os Usuários:
Agora precisamos informar ao Apache sobre o usuário e sua senha, mas antes de entrar nesta etapa, há um dever social que tenho, ou seja, explicar a diferença entre a instalação do Apache via RPM e a instalação a partir do código-fonte. :) Se você instalou o Apache a partir do RPM, ele instalará todos os comandos relacionados em seu /usr/local/bin, então não há problemas, você pode usar o comando htpasswd em qualquer lugar do seu sistema, mas se você instalou o Apache a partir do código-fonte, então você precisa encontrar o diretório bin do Apache para executar o comando htpasswd. Neste HowTo, eu darei ambos os caminhos, aqui está:
$ htpasswd -c /etc/httpd/conf/.htpasswd testusrO comando acima funcionará se você tiver htpasswd em seu /usr/local/bin e isso acontece se você instalar o Apache a partir do RPM. /etc/httpd/conf/.htpasswd é a localização do arquivo que conterá a senha do usuário autenticado/confiável.
OU
$ cd /apache/bin/$ ./htpasswd -c /etc/httpd/conf/.htpasswd testusrOs comandos acima estão corretos se você instalou o Apache a partir do código-fonte, $ cd /apache/bin pode ser ajustado de acordo com seu sistema, pois talvez você o tenha instalado em outro lugar.
7 Permissão do Arquivo .htpasswd:
Precisamos definir a permissão do arquivo .htpasswd e tornar o usuário apache o proprietário deste arquivo.
$ chown apache.apache /etc/httpd/conf/.htpasswd 8 Editando httpd.conf:
Agora precisamos editar o httpd.conf, pois o Apache precisa ser informado sobre o .htaccess, aqui mudaremos AllowOverride All | none para AuthConfig, agora há dois casos, um se você estiver hospedando apenas um site e outro se você tiver VirtualHost, aqui está o Primeiro Caso:
Neste caso, temos apenas uma tag Directory no arquivo httpd.conf, pois estamos hospedando apenas um site, então editaremos a tag
| |
Agora para o segundo caso, quando temos vários sites hospedados, ou seja, VirtualHost:
| |
9 Reiniciando o Apache:
Agora você precisa reiniciar o servidor Apache para recarregar a configuração.
Para sistema baseado em RPM:
$ service httpd restartPara sistema baseado em código-fonte, ajuste o caminho do diretório bin do Apache.
$ /apache/bin/apachectl restart10 Testando:
Agora tudo está pronto para ser testado, novamente abra seu navegador favorito e tente abrir os seguintes links:
e
Nota: Quando você navegar por esses links, será solicitado o nome de usuário e a senha, uma vez que você os forneça, será levado à página de teste. Mas uma vez que você faça login em um diretório, não será necessário o nome de usuário e a senha para o outro diretório de teste, pois o Apache não pedirá o nome de usuário e a senha repetidamente para diretórios iguais em nível ou subdiretórios. Portanto, uma vez que você esteja autenticado, os diretórios filhos e paralelos estão abertos para uso. Mas se você ainda quiser verificá-los, então use um navegador baseado em texto como links, que é o que eu faço para verificá-los.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.