Отрывок из <VirtualHost *:80>
раздел в httpd.conf
(цель: установить Cache-Control
для все Файлы JavaScript):
<LocationMatch "\.js">
Header set Cache-Control "max-age=290304000, public"
</LocationMatch>
.htaccess
(часть PHP-фреймворка 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>
Теперь я проверил 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">
матчи до и после переписать.
http://httpd.apache.org/docs/current/sections.html#merging
Мне нужно уходить сейчас, надеюсь, у меня будет больше времени, чтобы позже объяснить, как это работает вместе.