У меня есть файл php, который переименован в htaccess как файл css. Причина в том, что у меня есть некоторые стили и цвета, которые меняются в зависимости от некоторых параметров администратора.Я не могу кэшировать свой перезаписанный файл CSS PHP
В любом случае, я пытаюсь разрешить браузеру пользователя кэшировать файл. Вот что у меня есть:
style.php:
header("Content-type: text/css; charset: UTF-8");
// Start normal CSS styles...
.htaccess:
RewriteRule ^assets/css/min/([a-zA-Z0-9\._-]+)/([a-zA-Z0-9\._-]+)/([a-zA-Z0-9\._-]+)\.css$ assets/css/min.php?style=$1&layout=$2&ver=$3 [L,QSA]
# Compress
AddOutputFilterByType DEFLATE text/css
# Cache for 1 week
<FilesMatch ".(css)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType text/css "access plus 1 week"
</IfModule>
В голове страницы:
<link rel="stylesheet" href="http://example.com/assets/css/min/blue/flat/0.9.2.css">
Каждый раз, когда новая страница загружается, содержимое страницы запрашивается. Это заголовки я получаю:
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 13881
Content-Type: text/css; charset: UTF-8;charset=UTF-8
Date: Sat, 20 Feb 2016 22:49:17 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive: timeout=5, max=94
Pragma: no-cache
Server: Apache/2.4.16 (Unix) OpenSSL/1.0.1p PHP/5.6.12 mod_perl/2.0.8-dev Perl/v5.16.3
Vary: Accept-Encoding,User-Agent
X-Powered-By: PHP/5.6.12
Я предполагаю, что это связано с тем, что (внутри, когда-то переписан) URL-адрес имеет строку запроса, поэтому не получается кэшироваться, хотя документы для Apache 2.4 state «Обычно запросы с параметрами строки запроса кэшируется отдельно для каждой уникальной строки запроса. Это согласно RFC 2616/13.9 выполняется только в том случае, если указано время истечения срока действия. ' & Кажется, вы устанавливаете время истечения срока действия - действительно ли mod_expires включен? –
@RobGudgeon Да, mod_expires включен, потому что он работает для некоторых других типов файлов, которые у меня есть (изображения). – JROB
ваш огонь «доступ плюс 1 неделя» для стандартных, непереписанных файлов CSS? –