Кажется, существует проблема между тем, как механизм PHP обрабатывает идентичные файлы, которые отличаются только расширением файла.
Проблема: «Условный запрос If-Modified-Since вернул полное содержимое без изменений».
Кроме того, я измерил, что расширение .php загружается намного быстрее, чем идентичный двойник с расширением .xxx, даже если содержимое файла идентично, и они отличаются только в их расширении файла.
"HTTP позволяет клиентам делать условные запросы, чтобы увидеть, есть ли копия что они держат, все еще в силе. поскольку у этого ответа есть последнее изменение заголовок, клиенты должны иметь возможность использовать заголовок запроса If-Modified-Since для проверки. RED сделал это и обнаружил, что ресурс отправляет полный ответ, даже если он не изменено, указывая, что это не поддержка проверки Last-Modified. "
.php
.ast
Дано:
Файл home.php копируется как домашний. xxx, и это расширение добавляется к htaccess, чтобы распознать его как файл PHP. Файл .php прослушивает php.ini, где свежесть установлена на 3 часа, файлы без .php должны слушать htaccess, где свежесть установлена на 2 часов согласно:
AddType application/x-httpd-php .php .ast .abc .xxx .etc
<IfModule mod_headers.c>
ExpiresActive On
ExpiresDefault M2419200
Header unset ETag
FileETag None
Header unset Pragma
Header set Cache-Control "max-age=2419200"
##### DYNAMIC PAGES
<FilesMatch "\\.(ast|php|abc|xxx)$">
ExpiresDefault M7200
Header set Cache-Control "public, max-age=7200"
</FilesMatch>
</IfModule>
Пока все хорошо, и все загружается, за исключением того, что файл, отличный от php, не кэшируется должным образом, или он хорошо кэширует, но не проверяется, чтобы быть более конкретным. См. изображения в приложении. Только расширение файла, отличное от php, вызывает ошибку и загружается медленнее.
Весь файл page.php загружается быстрее, так как каким-то образом все элементы в нем затем загружаются правильно из кеша, в то время как страница.abc возвращает полный запрос, хотя его следует кэшировать, что означает, что вся страница работает медленнее.
Итог: что следует изменить, чтобы исключить условный запрос If-Modified-Since, возвращающий полное содержимое без изменений?