O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre.
O servidor é configurado por um arquivo mestre nomeado httpd.conf e opcionalmente pode haver configurações para cada diretório utilizando arquivos com o nome .htaccess, onde é possível utilizar autenticação de usuário pelo próprio protocolo HTTP utilizando uma combinação de arquivo .htaccess com um arquivo .htpasswd, que guardará os usuários e senhas (criptografadas).
Vou explicar aqui como você disponibilizar o acesso a uma pasta do Apache(www) exigindo usuario e senha.
mkdir /var/www/teste
echo Testando autenticação no Apache > /var/www/teste/index.html
touch passwd .htaccess
AuthName "Nome que aparecerá no título da janela"
AuthType Basic
AuthUserFile /var/www/teste/passwd
require valid-user
htpasswd -c passwd usuário
Será pedida a senha do novo usuário e em seguida sua confirmação.
New password
Re-type new password
Adding password for user usuário
Ao abrir o arquivo de senhas (passwd), serão vistos os nomes de usuário e senhas criptografadas.
more passwd
usuário:ZzbJ.YtR6TyyU
"/etc/apache2/sites-available/default"
Colocando as seguintes linhas no final do arquivo antes da tag, substituindo todas as diretivas conforme suas necessidades, uma observação importante é para a tag
AllowOverride, a mesma deve conter “AuthConfig” para que a autenticação seja bem sucedida.
Alias /teste/ "/var/www/teste/"
Options Indexes MultiViews FollowSymLinks
AllowOverride AuthConfig
Order deny,allow
Deny from all
Allow from 172.16.0.0/255.0.0.0 ::1/128
/etc/init.d/apache2 restart
Observações: as linhas abaixo se referem à restrição por IP, não são necessárias à autenticação.
Deny from all
Allow from 172.16.0.0/255.0.0.0 ::1/128
E todo esse tramite desse ser feito pelo usuário root para funcionar.
Pra quem vai trabalhar com MVC no PHP (por exemplo) precisa habilitar o mod_rewrite no Apache pra que funcione, segue os passos pra fazer isso
su
vi /etc/apache2/sites-available/default
Substitua por “AllowOverride AuthConfig” e altere a linha “AllowOverride None” dentro de substituindo por “AllowOverride All”.
a2enmod rewrite
/etc/init.d/apache2 restart
Agora vamos testar
vi /var/www/.htaccess
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?chave=$1
vi /var/www/index.php
Se imprimir na tela: nomequalquer/outronome/ (ou o nome que você escolheu), está tudo certo.Você já pode escrever seu Framework!