Nginx: выборочное включение / выключение базовой аутентификации на основе области
Я запускаю SugarCRM в стеке LEMP и закрываю его с помощью auth_basic. Это прекрасно работает, заголовки показывают:
WWW-Authenticate:
Basic realm="Username and Password are required"
Некоторые файлы в SugarCRM имеют свои собственные встроенные http-аутентификации через PHP, например, 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;
}