Deny access to directory, allow access to files NGINX

Posted July 26, 2018 8.1k views

I’m trying to put my directories behind a htpasswd file, but allow any user to access the files in said directory.

So far I have this

location ~ ^/files\/.*(?=\.)$  {
  auth_basic            "Restricted";
  auth_basic_user_file  /media/sdh1/home/qwertyspace/www/qwertyspace.zeus/public_html/files/.htpasswd;
  autoindex on;

#allow retrieval of any individual image via URL without auth
location ~* \..*$ {
  autoindex off;

Based off this:

But it still asks for a password when trying to download a file.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
2 answers

Hello, @QwertySpace

You should be able to set this using:

auth_basic "Admin Access";

instead of:

auth_basic "Restricted";
location ~* \..*$ {
autoindex off;

Hope this helps,

Let me know how it goes.


Hello, @QwertySpace

I’ve noticed that another community user have asked the same question and he was able to achieve this in this posted question:

In my case, I wanted to restricted people from wondering around my server just by typing the and be able to see what is inside it without specifying the direct link to it example:

There is a command also that is important that sets a priority of file searching;

location / {
try_files $uri $uri/ =404;

This command means it will try to access the file 1st then the folder then give you an error 404 if nothing works.
More info:

Hope this helps.