regexapache.htaccessmod-expires

Apache FilesMatch - matching a folder in the regular expression


I'm trying to cache some files using a .htaccess file for Apache2. I want to cache a particular folder longer than anything else, so I've been trying to use the FilesMatch directive like this:

<FilesMatch "skins(.*)\.(jpg|png|gif)">  
    ExpiresDefault A2592000  
</FilesMatch>

I'm hoping to be able to cache all image files in the /skins/ directory and its subdirectories. However, I can't quite get the regular expression to work - Apache just ignores it altogether.

How do you match a folder with <FilesMatch> in a .htaccess file?


Solution

  • FilesMatch should only match filenames. You can place the .htaccess file inside the skins directory and it should look something like this:

    <FilesMatch "\.(jpg|png|gif)">
        ExpiresDefault A2592000
    </FilesMatch>
    

    Alternatively, in httpd.conf, you could use:

    <Directory path_to_the_skins_dir>
        <FilesMatch "\.(jpg|png|gif)">
            ExpiresDefault A2592000
        </FilesMatch>
    </Directory>
    

    Good luck.