当指定 return 时,location 块中的 auth_basic 不起作用?

2023-12-27

我认为这会起作用,但由于某种原因它会跳过 auth_basic 并始终返回 200。如果我将 200 替换为 301 重定向,也会发生同样的情况。

如果我注释掉返回语句,它就可以正常工作。理想情况下我想要一个/auth一旦通过身份验证,端点就会 301 重定向到另一个路径。

 location /auth {
     auth_basic_user_file /etc/nginx/.htpasswd;
     auth_basic "Secret";

     return 200 'hello';
  }

我错过了什么吗?

非常感谢

fLo


return- 指令在大多数其他指令之前执行。要解决您的问题,您需要将其分为两个位置:

location /auth {
  auth_basic_user_file /etc/nginx/.htpasswd;
  auth_basic "Secret";
  try_files DUMMY @return200;
}

location @return200 {
  return 200 'hello';
}

The try_files- 指令在之后评估auth_basic。第二个位置的评估仅作为以下结果try_files.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当指定 return 时,location 块中的 auth_basic 不起作用? 的相关文章

随机推荐