Todo lo que sabemos es que podemos especificar un validador de caché para imágenes agregando las siguientes líneas al archivo .htaccess:
<IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 year" </IfModule>.. y ..
<IfModule mod_headers.c> <FilesMatch "\.(bmp|css|flv|gif|ico|jpg|jpeg|js|pdf|png|svg|swf|tif|tiff)$"> Header set Last-Modified "Mon, 31 Aug 2009 00:00:00 GMT" </FilesMatch> </IfModule>Pero será efectivo para archivos JPG o PNG reales. Sin embargo, la pregunta es, ¿cómo especificar el validador de caché para imágenes creadas con códigos PHP y funciones imagejpeg/imagepng sobre la marcha? (los códigos anteriores no son efectivos para ellos)
PD: he intentado simular la URL de la imagen creada por PHP como una imagen real usando el archivo .htaccess (por ejemplo: http://example.com/1.jpg , que es generado por el archivo PHP y no es un .jpg real) imagen), pero sigue recibiendo la advertencia del validador de caché.
Puede agregar el código PHP antes de las funciones imagejpeg/imagepng:
function TestModifiedSince($PageTimeStamp, $TextDatePage) { if (isset($_SERVER["HTTP_CACHE_CONTROL"])) {return;} if (!isset($_SERVER["HTTP_IF_MODIFIED_SINCE"])) {return;} $TestTime=strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]); if (($TestTime - $PageTimeStamp) >= 0) { header('Last-Modified: '. $TextDatePage, true, 304); exit(); } } # hh mm ss MM DD YYYY $DateUpdateBaseDef = mktime(00, 00, 00, 08, 31, 2009); $TimeHeadUpdate = gmdate('D, d MYH:i:s', $DateUpdateBaseDef).' GMT'; TestModifiedSince($DateUpdateBaseDef, $TimeHeadUpdate);Mi idea, hacer cambios en la configuración del servidor, para ejecutar una extensión diferente en lugar de solo PHP. para imprimir imágenes cuando usa la etiqueta img con la fuente del archivo php para representar la imagen. use una extensión diferente como getimage.iphp. Incluya en su configuración .htaccess con control de caché de archivo con extensión .iphp
Finalmente, use el encabezado dentro de su función de generación de imágenes para establecer la caducidad del archivo de imagen individual.
Es una pequeña teoría, pero podría ser útil como idea para implementar.