Existem vários guias que já descreveram isso, mas eu acho frustrante encontrar um que seja objetivo em escrever o que é preciso para conseguir uma autenticação simples em HTTP com usuário e senha trabalhando somente com código .htaccess.
Então, aqui vai uma versão resumida.
Criar um arquivo htpasswd
Esse é um arquivo simples que armazena os usernames e senhas (criptografadas) dos usuários para quem você quer garantir acesso.
$ htpasswd -c /var/www/vhosts/site.tld/passwd/htaccess.passwd mattias
O código acima vai criar um novo arquivo nesse local e configurar um usuário chamado “mattias”; você será solicitado a colocar a senha (duas vezes).
O parâmetro -c cria um novo arquivo; se você quiser adicionar usuários a um arquivo passwd que já exista, utilize isto:
$ htpasswd /var/www/vhosts/site.tld/passwd/htaccess.passwd jasper
No fim, o arquivo fica parecido com isto:
$ cat /var/www/vhosts/site.tld/passwd/htaccess.passwd mattias:$apr1$656eUsUz$305AHL.2PAC.U2UTBdlql0
Isso é uma senha criptografada; para redefini-la, execute os comandos acima novamente para o mesmo username, e ele vai sobrescrever a senha.
Se você quiser utilizar o arquivo de senhas acima (porque é rápido copiar e colar): a senha criptografada é “nucleus”, para que você possa acessar com o usuário mattias e a senha nucleus.
Autenticação HTTP no .htaccess
Agora, depois que você tiver o arquivo, adicione o seguinte item a seu .htaccess. Esse fragmento de código vai funcionar para o Apache 2.2 e 2.4. Certifique-se de mudar o caminho para o local de seu arquivo htpasswd.
$ cat .htaccess <IfModule mod_authn_file.c> # For Apache 2.4 or later AuthType Basic AuthName "Please provide username and password" AuthBasicProvider file AuthUserFile "/var/www/vhosts/site.tld/passwd/htaccess.passwd" Require valid-user </IfModule> <IfModule mod_auth.c> # For Apache 2.2 or lower AuthType Basic AuthName "Please provide username and password" AuthUserFile "/var/www/vhosts/site.tld/passwd/htaccess.passwd" Require valid-user </IfModule>
Da próxima vez que você visitar seu site, você provavelmente será solicitado a inserir um usuário e senha HTTP.
***
Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/apache-http-authentication-htaccess/.