Включение mod_expire в зависимости от запроса - PullRequest
4 голосов
/ 01 сентября 2011

Вместо генерации ссылок на file.js я вычисляю номер версии или хэш-сумму и создаю ссылку на file--bbe02f946d.js.Я использую следующее правило перенаправления, чтобы затем обслуживать текущую версию файла:

RewriteRule ^(.*)--[a-z0-9]+\.js$ $1.js

Теперь я хочу установить очень далеко Истекает заголовки для этих запросов:

ExpiresActive on
ExpiresByType application/javascript "access plus 1 year"

Это отлично работает, но относится и к еще не версированным ресурсам (/file.js запросы).Как я могу установить заголовки expires только для запросов, соответствующих RewriteRule?Обычно я бы использовал <LocationMatch>, но это недоступно, поскольку приложение должно работать на произвольных серверах, где я могу просто изменить htaccess.

1 Ответ

0 голосов
/ 08 апреля 2014

Вы можете добавить новый тип MIME с помощью htaccess и установить пользовательские заголовки expire.

Пример использования .xjs

<IfModule mod_mime.c>
    AddType application/x-javascript .xjs
</IfModule>

<IfModule mod_gzip.c>
mod_gzip_item_include file \.xjs$
</IfModule>

<FilesMatch ".(xjs)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>

или просто использовать регулярное выражение в FilesMatch для соответствия вашему js-файлу

<FilesMatch "--[a-z0-9]+\.js$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
...