我正在尝试为特定URI设置expire标头但由于某种原因它无法正常工作,到目前为止我在httpd.conf文件中所做的是以下内容:
<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>
这对我来说根本不起作用。我没有为我指定的内容提供过期日期标题。当你有两个LocationMatch
指令重叠,第一个指令优先时,我也不明白究竟会发生什么?
答案 0 :(得分:2)
我认为/mysite/contentservices/weather/get.json是一个静态数据文件,不是由CGI / mod_php /其他东西提供的?
配置按照在配置文件中找到它们的顺序应用。
请参阅http://httpd.apache.org/docs/2.0/sections.html
虽然没有其他因素,但参数的不同格式不应成为问题,如果您尝试,可能需要检查会发生什么:
<LocationMatch "/mysite/contentservices/weather/get.json">
ExpiresDefault "access plus 1 day"
</LocationMatch>
下进行。
答案 1 :(得分:2)
我不确定,但是文档没有提到LocationMatch作为可能的背景。
“上下文:服务器配置,虚拟主机,目录,.htaccess”
答案 2 :(得分:0)
尝试切换LocationMatch括号。
或者:某些代理服务器删除expires-header。