10

In my .htaccess I have this code:

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|txt|html|x-html|php|css|xml|js|woff|ttf|svg|eot)(\.gz)?$">
ExpiresActive On
Header set Expires "Sun, 27 May 2012 00:00:00 GMT"
Header unset ETag
FileETag None
</FilesMatch>

It seems to work perfectly on some servers, but not on one of my websites. I get a 500 Internal Server Error. Is there anything wrong in the config, or do I have to contact my host?

1 Answer 1

35

Ensure that you have these Apache modules enabled and loaded:

  • ExpiresActive -- mod_expires
  • Header -- mod_headers

Try this instead (it will only use directives if corresponding module is present):

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|txt|html|x-html|php|css|xml|js|woff|ttf|svg|eot)(\.gz)?$">
    <IfModule mod_expires.c>
        ExpiresActive On
    </IfModule>
    <IfModule mod_headers.c>
        Header set Expires "Sun, 27 May 2012 00:00:00 GMT"
        Header unset ETag
    </IfModule>
    FileETag None
</FilesMatch>

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