В развитие темы супер-пупер кеширования для Вордпресса, Zorg подсказал улучшенный вариант, с использованием Cache-Control:
$_chache_dir = 'microchache';
$_chache_time = 4*60*60;
$_denied_uri = array(‘/feed’);
if(is_dir($_chache_dir)){
$q = $_SERVER[‘REQUEST_URI’];
$uid = md5($q);
$file = $_chache_dir.’/’.$uid;
// запрещенный к кэшированию uri
if(!in_array($q, $_denied_uri)){
// есть файл актуального кэша
if(file_exists($file) && @filemtime($file)+$_chache_time > time())
{if(@$contents = file_get_contents($file)){
header(‘Cache-Control: max-age=’ . $_chache_time . ‘, public’);
exit($contents);}}
// нету или истек
else {ob_start();}}}
$buffer = ob_get_contents();
$f = fopen($_chache_dir.’/’.$uid, ‘w+’);
fwrite($f,».»\r\n». $buffer);
ob_clean();
echo $buffer;
Что это дает? Глухую броню в виде хтмл копии страницы сайта, устойчивую к толпам леммингов и ботов и околонулевое потребление памяти на хостинге. Для корректной работы кеша в корне сайта создайте папку microchache и дайте на нее права 777.
Например, для вордпресса — вставить после
ob_start();
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
и весь код положить в index.php
Если другой движок, cms или форум — то содержимое старого index.php положить в index2.php и вставить его через инклюд
ob_start();
include ("index2.php");