Я использую движок кеша для моих скриптов CSS и JS на основе PHP и .htaccess. Итак, в PHP я построил следующую функцию:
function CreateFileFingerprint($RelativePath)
{
$PathInfo = pathinfo($RelativePath);
return $PathInfo['dirname'].'/'.$PathInfo['filename'].'.'.filemtime(DATA_BASEPATH.$RelativePath).'.'.$PathInfo['extension'];
}
В то время как в моем .htaccess я использую заголовки срока действия:
FileETag None
Header Unset ETag
ExpiresActive On
ExpiresDefault A2592000
ExpiresByType application/javascript A31536000
ExpiresByType text/css A31536000
ExpiresByType text/javascript A31536000
<FilesMatch "[^\.php]$">
Header Append Cache-Control "public"
</FilesMatch>
И небольшое правило mod_rewrite:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(css|js)$ $1.$3 [L]
Затем на своей странице PHP я использую следующий код:
echo '<link rel="stylesheet" href="'.self::CreateFileFingerprint('/styles/style-base.css').'" media="all"/>';
Все отлично работает, но теперь я хотел бы реализовать универсальный PHP ErrorDocument для моего сайта, как объяснено здесь . Проблема в том, что мне нужно объединить мое предыдущее правило mod_rewrite с тем, которое предложено в ссылке:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /errors/error.php [L]
Может кто-нибудь помочь мне, пожалуйста?
Большое спасибо!