My webproject is stored into /var/www/vhosts/domain.tld/httpdocs/
HTACCES-file that I will list below contains the following:
# Refuse direct access to all files
Order deny,allow
Deny from all
Allow from 127.0.0.1
<Directory /uploads/images/pages>
Order Deny,Allow
Allow from all
</Directory>
.htaccess
file is stored into the folder files under the root. So the full path is:
/var/www/vhosts/domain.tld/httpdocs/files/
Contents for the folder "files":
backups
backup1.zip
backup2.zip
...
mails
mail1.html
mail2.html
...
templates
temlpate.html
...
uploads
files
manual.pdf
...
images
pages
picture1.png
picture2.jpg
...
store
picture1.png
picture2.jpg
...
.htaccess <--- previous code block with htaccess code is for that file
What I'm actually trying to do, is to protect every folder from direct access, except the following:
Every file in these folders may be accessed directly
On using .htaccess
as described above I'm getting 500 error page. When using only first 4 rows from example (no exceptions) the code works just fine.
You are getting a 500 error because the <Directory>
container cannot be used in an htaccess file (which is essentially all inside a directory container for the directory that it's in). What you need to do is remove the <Directory>
container from your htaccess file, and leave the Deny from all
bit:
htaccess file in your document root:
# Refuse direct access to all files
Order deny,allow
Deny from all
Allow from 127.0.0.1
Then create an htaccess file in the uploads/files/
, uploads/images/pages/
and uploads/images/store/
(and whatever other directories that you want to allow access to):
Allow from all
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With