Precisa sair agora, espero ter mais tempo para explicar depois como isso funciona junto.
Trecho da seção <VirtualHost *:80>
em httpd.conf
(objetivo: definir Cache-Control
para todos arquivos JavaScript):
<LocationMatch "\.js">
Header set Cache-Control "max-age=290304000, public"
</LocationMatch>
.htaccess
(parte do framework PHP do Symfony):
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>
Agora, verifiquei o cabeçalho Cache-Control
com duas URLs diferentes apontando para o recurso mesmo :
/index.php/pt_BR/home_page.js
: Cache-Control
definido conforme especificado acima
/pt_BR/home_page.js
: Cache-Control
com algum outro valor
Agora, por que o cabeçalho Cache-Control
não está definido para /pt_BR/home_page.js
?
Observe que há uma string de consulta no envolvida e <LocationMatch "\.js">
corresponde antes de e após a reescrita.
Precisa sair agora, espero ter mais tempo para explicar depois como isso funciona junto.