В результате решил проблему так:
location ~* /admin {
auth_basic "admin location";
auth_basic_user_file conf.d/htpasswd;
root /path/to/nowhere;
error_page 404 = @redirect;
}
location @redirect {
rewrite ^/([^\/]+)$ /index.php?api=$1;
index index.php;
}
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231626,231700#msg-231700