如何使用auth_basic_user_file限制NGINX重写'位置'

问题描述 投票:0回答:1

我的NGINX服务器块中有以下位置块:

location ~ ^/admin {
  auth_basic "Restricted";
  auth_basic_user_file /etc/nginx/.htpasswd;
  if (!-e $request_filename){
      rewrite ^(.*)$ /index.php?uri=$1;
  }
}

但是它不起作用。 /etc/nginx/.htpasswd文件存在,并且是使用htpasswd命令生成的:

sudo htpasswd -c /etc/nginx/.htpasswd admin

我之前已经做过,但是这次只是停止工作了。这次的唯一区别是,这次我试图在重写块内执行auth_basic_user_file。

authentication nginx .htpasswd
1个回答
1
投票

该配置将不起作用,因为重写阶段if XYZ将始终在访问阶段auth_XYZ之前运行,无论您如何将它们布置在位置块中。

See Nginx Phase Order

除了已经拥有的身份验证之外,还需要向您的php块添加身份验证要求。

© www.soinside.com 2019 - 2024. All rights reserved.