Pregunta

Parece haber un problema entre cómo el motor PHP maneja archivos idénticos que difieren solo en la extensión de su archivo.

Problema: "Una solicitud condicional si modificada se modificó el contenido completo sin cambios".

Además, medí que la extensión .php se carga mucho más rápido que el gemelo de identidad con la extensión .xxx a pesar de que el contenido del archivo es idéntico y difieren solo en su extensión de archivo.

alt text

alt text

"HTTP permite a los clientes realizar solicitudes condicionales para ver si una copia que posee aún es válida. Dado que esta respuesta tiene un último encabezado modificado, los clientes deberían poder usar un encabezado de solicitudes de la validación. Esto y descubrió que el recurso envía una respuesta completa a pesar de que no había cambiado, lo que indica que no es compatible con la validación de la última modificada ".


Página de inicio que termina con .php

alt text


exacto en el mismo archivo, pero terminando .ast

alt text


Dado:

Un archivo home.php se copia como home.xxx y esta extensión se agrega a htaccess para reconocerlo como un archivo php. El archivo .php escucha el php.ini donde la frescura se establece en 3 horas, los archivos no .php tienen que escuchar htaccess donde la frescura se establece en 2 horas según:

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>

Hasta ahora, todo bien y todo se carga, excepto que el archivo que no es PHP no almacena en caché correctamente, o hace un almacenamiento en caché bien, pero no valida bien, para ser más específico. Ver imágenes adjuntas. Solo la extensión de archivo no PHP causa el error y se carga más lentamente.

La página completa.php se carga más rápido, ya que de alguna manera todos los elementos allí se cargan correctamente desde caché, mientras que la página.Abc tiene la solicitud completa devuelta mientras debe almacenarse en caché, lo que significa que toda la página es más lenta.

En pocas palabras: ¿Qué se debe cambiar, para eliminar la solicitud condicional de If-Modified, que devuelve el contenido completo sin cambios?

¿Fue útil?

Solución

Parece que su servidor está teniendo problemas para determinar cómo decodificar la extensión, ya que no es .php. Incluso si definió la extensión para ser reconocida como PHP en su httpacess, todavía requiere algunos pasos adicionales para que el servidor procese la página, lo que significa que siempre tomará más tiempo que usar .php (aunque solo debería ser unas pocas ms de diferencia , lo más probable es que un problema de servidor esté haciendo que esto tarda mucho más). ¿Por qué no usar la extensión .php en sus páginas? ¿Por qué necesitas .Abc? Siempre es mejor usar la extensión predeterminada en lugar de enmascararla.

Editar: coloque esta función en la parte superior de cada página, detectará en qué nombre de dominio se encuentra el usuario, despoja la extensión www y del dominio y luego mostrará contenido solo para ese nombre de dominio específico. Puede usar el mismo archivo .php para cada nombre de dominio y no tiene que hacer extensiones funky.

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

if ($domainName = "YourDomainNameWithNoExtension") {
    echo "Welcome to $domainName";
}
?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top