<div dir="ltr"><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">Hello,<br><br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">I am using basic auth + $remote_user variable send to the back-end application to change context depending on the logged-in user.<br>

<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">The thing is, even if the page rendered by the back-end uses nginx user authentication, resources from a directory are still allowed for everyone.<br>

<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">My 'documents' directory is sorted as follows:<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">documents/<br>

</div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">    abc/ --> stores content for user 'abc'<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">    def/ --> stores content for user 'def'<br>

    ...<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">I tried the following:<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">

location ^~ /documents/(\w+) {<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">    if ($1 != $remote_user) {<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">

        return 503;<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">    }<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">}<br><br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">

But Nginx refuses to validate configuration:<br>nginx: [emerg] unknown "1" variable<br>nginx: configuration file /etc/nginx/nginx.conf test failed<br><br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">

Does the 'if' directive have an environment isolated for the on of the 'location' directive?<br></div><div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">Am I using wrong syntax?<br></div>

<div class="gmail_default" style="font-size:small;color:rgb(51,51,153)">Is there a 'IfIsEvil' case corresponding to my needs to avoid the use of the 'if' directive?<br><br>Thanks,<br clear="all"></div><div>

<font size="1"><span style="color:rgb(102,102,102)">---<br></span><b><span style="color:rgb(102,102,102)">B. R.</span></b><span style="color:rgb(102,102,102)"></span></font></div>
</div>