如何限制 NGINX 用 auth_basic_user_file 重写 'location'
How to restrict NGINX rewrite 'location' with auth_basic_user_file
我的 NGINX 服务器块中有以下位置块:
location ~ ^/admin {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?uri=;
}
}
但是没用。 /etc/nginx/.htpasswd 文件存在并使用 htpasswd 命令生成:
sudo htpasswd -c /etc/nginx/.htpasswd admin
我以前做过这个,但这次它就停止工作了。这次唯一的区别是这次我试图在重写块内执行 auth_basic_user_file 。
该配置将不起作用,因为重写阶段 if XYZ
将始终 运行 在访问阶段 auth_XYZ
之前,无论您如何在位置块中安排它们。
除了已有的要求外,您还需要将身份验证要求添加到 php 版块。
我的 NGINX 服务器块中有以下位置块:
location ~ ^/admin {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?uri=;
}
}
但是没用。 /etc/nginx/.htpasswd 文件存在并使用 htpasswd 命令生成:
sudo htpasswd -c /etc/nginx/.htpasswd admin
我以前做过这个,但这次它就停止工作了。这次唯一的区别是这次我试图在重写块内执行 auth_basic_user_file 。
该配置将不起作用,因为重写阶段 if XYZ
将始终 运行 在访问阶段 auth_XYZ
之前,无论您如何在位置块中安排它们。
除了已有的要求外,您还需要将身份验证要求添加到 php 版块。