Question

Il semble y avoir un problème entre la façon dont le moteur PHP gère les fichiers identiques qui ne diffèrent que par leur extension de fichier.

Problème: "Une demande conditionnelle if-modifiée-sur-le-temps a renvoyé le contenu complet inchangé."

De plus, j'ai mesuré que l'extension .php se charge beaucoup plus rapidement que le jumeau identitcal avec une extension .xxx même si le contenu du fichier est identique, et ils ne diffèrent que par leur extension de fichier.

alt text

alt text

"HTTP permet aux clients de faire des demandes conditionnelles pour voir si une copie qu'ils détient est toujours valide. Étant donné que cette réponse a un en-tête dernier modifié, les clients devraient être en mesure d'utiliser une en-tête de demande si-modifiée pour la validation. Ceci et ont constaté que la ressource envoie une réponse complète même si elle n'avait pas changé, indiquant qu'elle ne prend pas en charge la validation de la dernière modification. "


page d'accueil se terminant avec .php

alt text


exactement le même fichier, mais fin .ast

alt text


Donné:

Un fichier home.php est copié sous le nom de Home.xxx et cette extension est ajoutée à HTACCESS pour la reconnaître comme un fichier PHP. Le fichier .php écoute le php.ini où la fraîcheur est définie sur 3 heures, les fichiers non .php doivent écouter htaccess où la fraîcheur est définie sur 2 heures selon:

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>

Jusqu'à présent, tout va bien et tout se charge, sauf que le fichier non PHP ne cache pas correctement, ou il se cache bien mais ne valide pas bien, pour être plus précis. Voir les images enfermées. Seule l'extension de fichier non PHP provoque l'erreur et charge plus lentement.

L'ensemble de la page.php se charge plus rapidement car tous les éléments dedans se chargent correctement à partir du cache, tandis que la page.ABC a la demande complète retournée alors qu'elle doit être mise en cache, ce qui signifie que la page entière est plus lente.

Conclusion: Qu'est-ce qui devrait être modifié, afin d'éliminer la demande conditionnelle si modifiée en ce qui concerne le contenu complet inchangé?

Était-ce utile?

La solution

Il semble que votre serveur ait du mal à déterminer comment décoder l'extension, car ce n'est pas .php. Même si vous avez défini l'extension à reconnaître comme PHP dans votre HTTPACESS, elle nécessite toujours quelques étapes supplémentaires pour que le serveur traite la page, ce qui signifie qu'il prendra toujours plus de temps que d'utiliser .php (bien qu'il ne s'agisse que de quelques différences de ms , Très probablement, un problème de serveur fait que cela prend beaucoup plus de temps). Pourquoi ne pas simplement utiliser l'extension .php sur vos pages? Pourquoi avez-vous besoin .abc? Il est toujours préférable d'utiliser simplement l'extension par défaut au lieu de le masquer.

EDIT: Mettez cette fonction en haut de chaque page, elle détectera le nom de domaine sur lequel l'utilisateur est, déposez l'extension www et le domaine, puis affichera le contenu pour ce nom de domaine spécifique uniquement. Vous pouvez utiliser le même fichier .php pour chaque nom de domaine et n'avez pas à faire d'extensions funky.

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

if ($domainName = "YourDomainNameWithNoExtension") {
    echo "Welcome to $domainName";
}
?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top