PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Caching / Expiration Header



Nighthawk
09-09-2003, 17:03
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
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' );
...