我在 LEMP 堆栈上运行 SugarCRM,并使用 auth_basic 将其关闭。效果很好,标题显示:
WWW-Authenticate:
Basic realm="Username and Password are required"
SugarCRM 中的一些文件通过 PHP 有自己的内置 http auth,例如 ical_server.php,它显示在其标题中:
WWW-Authenticate:
Basic realm="SugarCRM iCal"
X-Dav-Powered-By:
PHP class: HTTP_WebDAV_Server_iCal
我试图绕过这个文件的 auth_basic,或者至少是我自己的领域,上面显示的第一个。
location = /ical_server.php {
auth_basic "off";
}
但是,这会关闭这两个领域。换句话说,它会不加选择地完全关闭 auth_basic。
有没有办法选择性地关闭选择的 http 基本身份验证领域?Nginx 文档似乎暗示没有,如果这是真的,那么是否有另一种,也许是迂回的方式来实现这一点?
比如首先打开我的领域的正则表达式?
伪代码:
location != /ical_server.php {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
}
虽然我不认为负匹配是可能的。
有任何想法吗?
您可以定义两个位置: