我在 LEMP 堆栈上运行 SugarCRM,并使用 auth_basic 将其关闭。运行正常,标题显示:
WWW-Authenticate:
Basic realm="Username and Password are required"
SugarCRM 中的某些文件通过 PHP 内置有自己的 http 身份验证,例如 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;
}
尽管我不认为负匹配是可能的。
有任何想法吗?
答案1
您可以定义两个位置:
location /ical_server.php {
}
location / {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
}