HostCMS писал(а):
В таком случае в работу включался бы PHP и смысл такого кэширования был бы потерян.
Меня все-таки смутили два последовательных редиректа в .htaccess которые я процитировал выше, в самом первом посте. Поэтому я решил провести небольшой эксперимент.
Открыл в редакторе основной шаблон сайта, и добавил в его конец вот такой фрагмент кода:
// получим запрашиваемый url
$uri = $_SERVER['REQUEST_URI'];
// получим путь к текущей папке
$script_dir = dirname(__file__) . '/';
$file = 'log2.txt';
$filename = $_SERVER['DOCUMENT_ROOT'] . '/cache_html/' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $_SERVER['QUERY_STRING'] . 'index.html';
$str = $uri . "\t" . $filename . "\n";
if (file_exists($filename))
file_put_contents($script_dir . $file, $str, FILE_APPEND);
echo $script_dir . $file;
Как легко заметить, код вычисляет путь к кешированному файлу текущей страницы, потом проверяет существование этого файла, и если он существует, то в файл log2.txt дописывается строка, содержащая текущий url сайта и путь к файлу кеша.
Исходя из описанного вами выше, файл log2.txt при таком коде должен всегда оставаться пустым, т.к. запись в файл происходит только когда файл существует, а при существующем файле php не запускается.
Однако ж нет, в файл стали писаться строки, содержащие пути к существующим файлам кеша.
Стало быть, php не только _запускается_ при наличии кешированного файла, но еще и честно отрабатывает всю генерацию страницы до конца!
При этом, поскольку в htaccess index.php упомянут первым, то именно он и отдает страничку пользователю, а должен бы отдаваться Апачем статический файл из кеша.
Так а что же надо сделать, чтобы php не запускался при наличии кешированной страницы?
Версия HostCMS - 5.9.12