Folgendes Script in einer Datei aufgerufen funktioniert einwandfrei:
Beim Webserver kommt keine Anfrage mit Status 200 (OK) an sondern gar nichts oder Status 304 (Not Modified) wenn ein Cache zwischen Client und Server die Daten gecachet hat.
please_cache.php:
PHP-Code:
<?php
header( "Expires: ".gmdate("D, d M Y H:i:s",time()+60*60)." GMT" );
header( "Cache-Control: public" );
$ims = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
$ftime = filemtime( $_SERVER['SCRIPT_FILENAME'] );
if( $ims != "" )
{
$ims = explode( ';', $ims );
$ims = $ims[0];
$it = strtotime( $ims );
if( $it >= $ftime )
{
header( "HTTP/1.1 304 Not Modified" );
} else {
header( "Last-Modified: ".gmdate("D, d M Y H:i:s", $ftime) ." GMT" );
}
} else {
header( "Last-Modified: ".gmdate("D, d M Y H:i:s", $ftime) ." GMT" );
}
?>
Sobald ich das Script in einem anderen Script includiere wird der Inhalt wieder direkt vom Server abgerufen und nicht gecachet.
<?php
require_once( './please_cache.php' );
...
Lesezeichen