How To Restrict Multiple Directories With Nginx But Still Access Files?

June 8, 2014 992 views
I would like to know how to let people access files with a direct link on my server but restrict them from accessing all directories? Exemple: I want them to see www.site1.com/usa/newyork/1.html I don't want people to be able to access either www.site1.com/usa/ nor www.site1.com/usa/newyork I have tried; command: sudo nano /etc/nginx/sites-available/site1.com ... location ~ /(usa) { deny all; return 404; } ... But after that I can't access the rest myself... even with a direct link: www.site1.com/usa/newyork/1.html Thank you for your help, Octav
2 Answers
Problem is solved!

So, by default Nginx has an option called autoindex set to off!
This command line: autoindex on; will activate the ability to see your directories (to everyone).

In my case, I wanted to restricted people from wondering around my server just by typing the www.exemple.com/test1/test2 and be able to see what is inside it without specifying the direct link to it example: www.exemple.com/test1/test2/image1.png

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: http://stackoverflow.com/questions/17798457/how-can-i-make-this-try-files-directive-work




**Also, my configuration has index.html, index.php, index.htm set as default. So if you don't want people to access other folders without typing in the whole path change either you default settings or change the name of your files ex: index1.html ...**
Have another answer? Share your knowledge.