PHP引擎如何处理仅在文件扩展方面有所不同的相同文件之间似乎存在问题。

问题: “ if修改的条件请求返回了完整的内容不变。”

另外,我测量的是,.php扩展名在使用.xxx扩展名的Identitcal Twin的速度快得多,即使文件内容相同,并且它们仅在文件扩展名中有所不同。

alt text

alt text

“ HTTP允许客户端提出有条件的请求,以查看其持有的副本是否仍然有效。由于此响应具有最后修改的标头,因此客户端应能够使用If-Since-Since请求标题进行验证。红色已经完成了这并发现资源即使没有改变,资源也会发送完整的响应,表明它不支持最后修改的验证。”


主页结束 .php

alt text


完全相同的文件,但结束 .ast

alt text


给定:

home.php文件被复制为home.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修改的条件请求,返回完整内容不变的内容?

有帮助吗?

解决方案

似乎您的服务器在确定如何解码扩展程序时遇到困难,因为它不是.php。即使您将扩展名定义为在HTTPACESS中被识别为PHP,它仍然需要服务器处理页面的一些额外步骤,这意味着它始终需要更长的时间,然后只需使用.php(尽管它应该是几个MS差异,最有可能的服务器问题是导致这需要更长的时间)。为什么不在页面上使用.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