Nginx:基于领域的Auth Basicselect性开启/closures

我在LEMP堆栈上运行SugarCRM,并使用auth_basicclosures它。 这工作正常,标题显示:

WWW-Authenticate: Basic realm="Username and Password are required" 

SugarCRM中的一些文件通过PHPbuild立了自己的http auth,比如ical_server.php,它在头部显示:

 WWW-Authenticate: Basic realm="SugarCRM iCal" X-Dav-Powered-By: PHP class: HTTP_WebDAV_Server_iCal 

我试图绕过auth_basic这个文件,或者至less我自己的领域,第一个上面显示。

 location = /ical_server.php { auth_basic "off"; } 

但是,这closures了这两个领域。 换句话说,它完全closuresauth_basic,不分青红皂白地。

有没有办法有select地closures一个http基本身份validation领域的select? Nginx的文档似乎暗示没有,如果这是真的,那么是否有另一个,也许迂回的方式来实现呢?

比如正式开启我的领域的正则expression式?

伪代码:

 location != /ical_server.php { auth_basic "Username and Password are required"; auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd; 

}

虽然我不认为负面的匹配是可能的。

有任何想法吗?

您可以定义两个位置:

 location /ical_server.php { } location / { auth_basic "Username and Password are required"; auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd; }