我想用密码保护我的开发者子域名(dev.example.com),并让主域名公开。
我想以递归方式执行此操作,以便子域上的任何文件或文件夹始终提示您登录。
在 Nginx 配置文件中,我已将以下内容添加到我的 dev.example.com 服务器块中(请注意,我有针对主域和子域的单独服务器块):
location ^~ / {
auth_basic "Administrator Login";
auth_basic_user_file /home/path/to/.htpasswd;
}
通过在 SF 上进行搜索,我的印象是^~
标识符使得密码保护具有递归性,但事实并非如此。
尽管 dev.example.com 特别提示我登录,但 dev.example.com/folder/ 却没有。
我究竟做错了什么?
答案1
为了保护整个子域,语句应该出现在现存的 server
堵塞:
server {
server_name dev.example.com;
auth_basic "Administrator Login";
auth_basic_user_file /home/path/to/.htpasswd;
...
}
答案2
这应该可以工作。完成编辑后,请确保重新启动 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;
}
}