Para proteger todo o subdomínio, as declarações devem aparecer no bloco existente server
:
server {
server_name dev.example.com;
auth_basic "Administrator Login";
auth_basic_user_file /home/path/to/.htpasswd;
...
}
Eu quero proteger meu subdomínio de desenvolvedor com senha (dev.example.com) e deixar o domínio principal publicamente disponível.
Eu quero fazer isso de forma recursiva, para que qualquer arquivo ou pasta no subdomínio sempre solicite um login.
No arquivo de configuração do Nginx, adicionei o seguinte ao meu bloco de servidores dev.example.com (observe que eu tenho blocos de servidores separados para o principal e o subdomínio):
location ^~ / {
auth_basic "Administrator Login";
auth_basic_user_file /home/path/to/.htpasswd;
}
A partir da pesquisa em SF, fiquei com a impressão de que o identificador ^~
torna a proteção por senha recursiva, mas isso não acontece.
Enquanto o dev.example.com solicita especificamente um login, dev.example.com/pasta/não.
O que estou fazendo de errado?
Isso deve funcionar. E certifique-se de reiniciar o nginx após concluir a edição.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html/subdomain;
index index.php index.html index.html
server_name dev.example.com;;
location ^~ / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}