Вопрос

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

Проблема: «Условный запрос с модифицированным IF-модифицированным, не изменил полный контент без изменений».

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

alt text

alt text

"HTTP позволяет клиентам вносить условные запросы, чтобы увидеть, является ли копия, которую они держат, все еще действительна. Поскольку этот ответ имеет последнюю модифицированный заголовок, клиенты должны иметь возможность использовать заголовок запроса с модифицированным ими, для проверки. Это и обнаружило, что ресурс посылает полный ответ, даже если он не изменился, указывая на то, что он не поддерживает проверку последней модифицированной ».


Домашняя страница заканчивается .php

alt text


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

alt text


Данный:

Файл home.php копируется как home.xxx, и это расширение добавляется в htaccess, чтобы распознать его в качестве файла PHP. Файл.

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 загружается быстрее, так как все элементы там загружаются правильно из кэша, в то время как Page.ABC возвращается полный запрос, а его следует кэшировать, что означает, что вся страница медленнее.

Итог: что следует изменить, чтобы устранить условный запрос с модифицированным IF-модифицированным, возвращающий полный содержимое без изменений?

Это было полезно?

Решение

Похоже, что у вашего сервера возникают проблемы с определением того, как декодировать расширение, поскольку он не является .php. Даже если вы определили расширение, которое будет расположено как PHP в вашем httpacess, для обработки страницы все равно требуется дополнительные шаги для обработки страницы. , скорее всего, проблема с сервером заставляет это занять гораздо больше времени). Почему бы просто не использовать расширение .php на страницах? Зачем вам нужен .ABC? Всегда лучше использовать расширение по умолчанию вместо маскировки его.

РЕДАКТИРОВАТЬ: Поместите эту функцию в верхнюю часть каждой страницы, она обнаружит, на какое доменное имя включает пользователь, разделите расширение www и домен, а затем отобразит контент только для этого конкретного доменного имени. Вы можете использовать один и тот же файл .php для каждого доменного имени и не нужно делать никаких прикольных расширений.

<?php
$domain = explode(".", $_SERVER['SERVER_NAME']);
if ($domain[2]) {
    $domainName = $domain[1];
}
else {
    $domainName = $domain[0];
}

if ($domainName = "YourDomainNameWithNoExtension") {
    echo "Welcome to $domainName";
}
?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top