Я хочу защитить паролем свой поддомен разработчика (dev.example.com) и оставить основной домен общедоступным.
Я хочу сделать это рекурсивно, чтобы любой файл или папка в поддомене всегда предлагали вам войти в систему.
В конфигурационном файле Nginx я добавил следующее в свой серверный блок dev.example.com (обратите внимание, что у меня есть отдельные серверные блоки для основного и субдомена):
location ^~ / {
auth_basic "Administrator Login";
auth_basic_user_file /home/path/to/.htpasswd;
}
Изучая поиски по научной фантастике, у меня сложилось впечатление, что ^~
идентификатор делает защиту паролем рекурсивной, но это не так.
Если dev.example.com специально предлагает мне войти в систему, то dev.example.com/folder/ - нет.
Что я делаю не так?
Чтобы защитить весь субдомен, операторы должны отображаться в существующий server
блок:
server {
server_name dev.example.com;
auth_basic "Administrator Login";
auth_basic_user_file /home/path/to/.htpasswd;
...
}
Это должно работать. И не забудьте перезапустить nginx после завершения редактирования.
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;
}
}