摘自(<VirtualHost *:80>
目标httpd.conf
:设定Cache-Control
为全部JavaScript 文件):
<LocationMatch "\.js">
Header set Cache-Control "max-age=290304000, public"
</LocationMatch>
.htaccess
(Symfony PHP 框架的一部分):
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
现在,我检查了Cache-Control
标头,其中有两个不同的 URL 指向相同的资源:
/index.php/pt_BR/home_page.js
:Cache-Control
按上述指定设置/pt_BR/home_page.js
:Cache-Control
具有其他值
现在,为什么Cache-Control
没有设置标题/pt_BR/home_page.js
?
请注意不涉及查询字符串,并且<LocationMatch "\.js">
匹配之前和重写后。
答案1
http://httpd.apache.org/docs/current/sections.html#merging
现在需要出发了,我希望稍后我能有更多的时间来解释它们是如何一起发挥作用的。