
Здравствуйте, уважаемые читатели!
Наверняка, Вам известно, что CMS «Joomla» достаточно тяжеловесна и требовательна к ресурсам. Если проект большой и имеет много индексированных страниц, а Вы, ввиду каких-то обстоятельств, вынуждены использовать достаточно медленный хостинг, который не выдерживает нужных нагрузок – значит необходимо найти приемлемое промежуточное решение для снижения серверных нагрузок, желательно, — без особой переработки самого сайта.
// trigger the onAfterRender events
JDEBUG ? $_PROFILER->mark('afterRender') : null;
$mainframe->triggerEvent('onAfterRender');
Необходимо добавить следующие строки:
$page = JResponse::toString($mainframe->getCfg('gzip'));
$DOCUMENT_ROOT = 'полный/путь/к/корневой/папке';
$filecache = $DOCUMENT_ROOT . 'static' . $_ENV['REQUEST_URI'];
$cache = fopen($filecache, 'w');
fwrite($cache, $page);
fclose($cache);
echo $page;
Теперь копии страниц, которые уже открывались, будут складываться в назначенную вами папку.
Вторым шагом является перенаправление уже существующих в этом кеше страниц на уровне .htaccess, чтобы сервер при запросе возвращал из кеша простой статический файл, а код Joomla не производил операции. Вот так решается эта задача:
RewriteCond %{REQUEST_METHOD} GET
RewriteCond /путь к корневой папке/stat/%{REQUEST_URI} -f
RewriteRule .* /stat/%{REQUEST_URI} [L]
Теперь, по мере того, как на Ваш сайт заходят посетители или поисковые роботы, посещённые страницы сохраняются в кеш, и сайт постепенно становится статическим. При этом, все достоинства Joomla в редактировании и управлении контентом сохраняются.