Reputation: 379
I'm trying to set expire header for a specific URI but for some reason it is not working, what I've done so far in the httpd.conf file was the following:
<LocationMatch "/mysite/contentservices/weather/get.json">
ExpiresDefault A86400
</LocationMatch>
<LocationMatch "/mysite/*">
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
ExpiresByType text/css "access plus 1 day"
ExpiresByType text/javascript "access plus 1 day"
ExpiresByType image/gif "access plus 1 week"
ExpiresByType image/jpg "access plus 1 week"
ExpiresByType image/png "access plus 1 week"
ExpiresByType application/x-shockwave-flash "access plus 1 week"
</LocationMatch>
This simply does not work for me. I get no expiry date headers for the contents I specified. I also don't understand what exactly happens when you have two LocationMatch
directives that overlap that the first one takes precedence?
Upvotes: 5
Views: 3274
Reputation: 697
I'm not sure but the docs do not mention LocationMatch as possible context.
"Context: server config, virtual host, directory, .htaccess"
http://httpd.apache.org/docs/2.0/mod/mod_expires.html
Upvotes: 2
Reputation: 48357
I assume that /mysite/contentservices/weather/get.json is a static data file and NOT served up by CGI / mod_php / something else?
The configs are applied in the order in which they are found in the config file.
See http://httpd.apache.org/docs/2.0/sections.html
Although given no other factors the different formatting of the argument shouldn't be a problem, it might be worth checking what happens if you try:
<LocationMatch "/mysite/contentservices/weather/get.json">
ExpiresDefault "access plus 1 day"
</LocationMatch>
C.
Upvotes: 2
Reputation: 3323
Try switching the LocationMatch brackets.
Alternatively: Some proxy servers remove the expires-header.
Upvotes: 0