Setting expires header for a specific URI?
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 http开发者_如何学运维d.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?
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
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.
Try switching the LocationMatch brackets.
Alternatively: Some proxy servers remove the expires-header.
精彩评论