Почему PHP различает .php и. Расширения abc для кэширования?

Кажется, существует проблема между тем, как механизм PHP обрабатывает идентичные файлы, которые отличаются только расширением файла.

Проблема: «Условный запрос If-Modified-Since вернул полное содержимое без изменений».

Кроме того, я измерил, что расширение .php загружается намного быстрее, чем идентичный двойник с расширением .xxx, даже если содержимое файла идентично, и они отличаются только в их расширении файла.

alt text

alt text

"HTTP позволяет клиентам делать условные запросы, чтобы увидеть, есть ли копия что они держат, все еще в силе. поскольку у этого ответа есть последнее изменение заголовок, клиенты должны иметь возможность использовать заголовок запроса If-Modified-Since для проверки. RED сделал это и обнаружил, что ресурс отправляет полный ответ, даже если он не изменено, указывая, что это не поддержка проверки Last-Modified. "


домашняя страница, заканчивающаяся на .php

alt text


точно такой же файл, но заканчивающаяся .ast

alt text


Дано:

Файл 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, возвращающий полное содержимое без изменений?

9
задан meagar 21 December 2010 в 20:57
поделиться