2

Navigation in my site is like this:

www.example.com/pictures/cars/ etc

I am trying to allow only .html and .jpg in these folders, but I also need the directory to be accessible

Order allow,deny
Deny from all
<FilesMatch ".*\.(jpg|html)$">
Order allow,deny
Allow from all
</FilesMatch>

This code works but the content now is only accessible while trying to access

https://www.example.com/pictures/cars/index.html

and https://www.example.com/pictures/cars/ is showing a 403 error

Can anyone help me with this?

1 Answer 1

2

The <FilesMatch> directive matches against physical files. When requesting just the directory then the "file" is essentially empty. This is despite the fact that Apache then makes an internal subrequest for the directory index document (ie. index.html in this case). This subrequest would seem to occur after the <FilesMatch> directive is processed.

So, in order to allow direct access to directories you can modify your existing regex to allow "empty" files. For example:

<FilesMatch "^(.+\.(jpg|html))?$">

This essentially makes the filename optional.


Aside: <DirectoryMatch> directives are only permitted in the server config (not .htaccess). .htaccess files are essentially the same as the <Directory> wrapper, but within your webspace.

1
  • 1
    it worked thank you!
    – Jefferson
    Jun 10, 2017 at 21:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.