Você pode definir dois locais:
location /ical_server.php {
}
location / {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
}
Eu corro o SugarCRM em uma pilha LEMP e fecho com o auth_basic. Isso funciona bem, os cabeçalhos mostram:
WWW-Authenticate:
Basic realm="Username and Password are required"
Alguns arquivos dentro do SugarCRM têm seus próprios comandos de autenticação http através do PHP, por exemplo, ical_server.php, que mostra em seus cabeçalhos:
WWW-Authenticate:
Basic realm="SugarCRM iCal"
X-Dav-Powered-By:
PHP class: HTTP_WebDAV_Server_iCal
Eu estou tentando ignorar auth_basic para este arquivo, ou pelo menos meu próprio reino, o primeiro mostrado acima.
location = /ical_server.php {
auth_basic "off";
}
No entanto, isso desativa os dois domínios. Em outras palavras, ele desliga o auth_basic completamente, indiscriminadamente.
Existe uma maneira de desativar seletivamente um domínio de autenticação básica http de sua escolha? A documentação do Nginx parece sugerir que não há, se isso é verdade, então existe outra maneira, talvez indireta, de conseguir isso?
Como um regex para ligar o meu reino em primeiro lugar?
Pseudocódigo:
location != /ical_server.php {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
}
Embora eu não ache que a correspondência negativa seja possível.
Alguma idéia?