kleiner Fehler im HowTo zu mod_cache
Hallo HowTo-Leser,
ich habe einen kleinen, aber essentiellen Fehler in Falko Timme's HowTo zum Thema mod_cache gefunden:
Das Script in Kapitel 3 funktionierte bei mir nicht, es wurde nicht gecached.
Also habe ich mich auf Fehlersuche begeben. Anscheinend benötigt mod_cache die Angabe einer Ausgangs- oder Endzeit: Last-Modified oder Expires. Alternativ kann man aber auch in mod_cach's Config "CacheIgnoreNoLastMod" auf "on" setzen, damit der fehlende Header ignoriert und eine Zeit "ausgedacht" wird.
mod_cache reagiert in Verbindung mit "Cache-Control: must-revalidate" auf folgende Eintrage (und/oder):
Viele Grüße
Tobias
Hallo HowTo-Leser,
ich habe einen kleinen, aber essentiellen Fehler in Falko Timme's HowTo zum Thema mod_cache gefunden:
Das Script in Kapitel 3 funktionierte bei mir nicht, es wurde nicht gecached.
Also habe ich mich auf Fehlersuche begeben. Anscheinend benötigt mod_cache die Angabe einer Ausgangs- oder Endzeit: Last-Modified oder Expires. Alternativ kann man aber auch in mod_cach's Config "CacheIgnoreNoLastMod" auf "on" setzen, damit der fehlende Header ignoriert und eine Zeit "ausgedacht" wird.
mod_cache reagiert in Verbindung mit "Cache-Control: must-revalidate" auf folgende Eintrage (und/oder):
- "Expires" in der Zukunft
- "Last-Modified" in der Vergangenheit
- "Etag" in der Vergangenheit
PHP:
<?php
$reval_duration = 10;
$now = time();
$expiration_date = gmdate('D, d M Y H:i:s', $now + $reval_duration);
$last_modified = gmdate('D, d M Y H:i:s', $now);
$etag = md5($now);
header('Cache-Control: must-revalidate, max-age=' . $reval_duration);
header('Expires: ' . $expiration_date . ' GMT');
header('Vary: Accept-Encoding');
//header('Last-Modified: ' . $last_modified . ' GMT');
//header('Etag: ' . $etag);
printf("%s (now)<br>\n%s (expiration)", $last_modified, $expiration_date);
?>
Tobias
Zuletzt bearbeitet: