Как сайт на «Joomla» сделать статическим

Как сайт на «Joomla» сделать статическим

Статическая позиция

Здравствуйте, уважаемые читатели!

Наверняка, Вам известно, что CMS «Joomla» достаточно тяжеловесна и требовательна к ресурсам. Если проект большой и имеет много индексированных страниц, а Вы, ввиду каких-то обстоятельств, вынуждены использовать достаточно медленный хостинг, который не выдерживает нужных нагрузок – значит необходимо найти приемлемое промежуточное решение для снижения серверных нагрузок, желательно, — без особой переработки самого сайта.

Простым решением данной задачи представляется превращение сайта на Joomla в статический. Первое, о чём необходимо позаботиться при осуществлении задуманного – «движок» Joomla по-прежнему должен посылать запросы к базе данных, парсить шаблоны и составлять интернет-страничку для передачи в броузер пользователя. И вот здесь эту страничку необходимо сохранить в специальный кеш, после чего, при повторном переходе к ней, чтобы проделанная системой работа, не повторялась. Для этого необходимо создать отдельную директорию, например /stat/, в которой будет храниться кеш. А затем в файле index.php, расположенном в корневом каталоге 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 в редактировании и управлении контентом сохраняются.

Дискуссия по теме