phpbar.de logo

Mailinglisten-Archive

[php] [O/T] Caching per .htaccess unter Apache

[php] [O/T] Caching per .htaccess unter Apache

Nico Haase nico.haase at gmx.de
Mit Aug 29 12:21:38 CEST 2007


Hallo Thorsten,

Thorsten Koch schrieb:
> In einem Verzeichnis unterhalb des Webroots liegen .css Dateien, .js
> Dateien etc. Diese Dateien ändern sich ab und zu mal. Daher würde ich
> hier gerne die Werte für das Caching anders setzen, wie für den Rest der
> Website. Diese Dateien werden direkt aufgerufen, also kann ich selbst mit
> PHP keine Header senden. Kann ich per .htaccess Datei in dem Verzeichnis
> das explizit angeben? Wenn ja, wie? Oder andersrum, wie kann ich das
> angeben OHNE in die Konfiguration des Webservers eingreifen zu müssen?

Caching in dem Sinne bietet der Apache afaik nicht an, aber es gibt den
Last-Modified-Header. Und das geht dann in etwa so: Wenn eine Datei vom
Browser angefordert wird, schickt der Apache im Header den Zeitpunkt der
letzten Bearbeitung mit. Diese kann sich der Browser im Cache merken und
beim nächsten Aufruf einen If-Modified-Since-Header schicken. Dieser sagt
dem Apachen: Schick mir das Dokument, wenn es seit dem Zeitpunkt im
If-Modified-Since-Header geändert wurde. Bei statischen Dateien klappt das
gut, wie dir bspw.
http://web-sniffer.net/?url=http%3A%2F%2Fwww.buchtips.net%2Ftemplates%2Fcorinna%2Fbuchtips_oben.gif&submit=Submit&http=1.1&gzip=yes&type=GET&ua=Mozilla%2F5.0+%28Windows%3B+U%3B+Windows+NT+5.1%3B+de-DE%3B+rv%3A1.8.1.7pre%29+Gecko%2F20070828+BonEcho%2F2.0.0.7pre+Web-Sniffer%2F1.0.24
zeigt. Und da ist das Caching dann solange gültig, bis die Datei geändert wird.
Falls du was anderes meinst, klär uns doch mal auf, was du unter dem Caching
verstehst. Da es um nicht vom PHP-Parser bearbeitete Dateien geht, kommt ja
nur ein Apache-Cache in Frage, und da fällt mir kein anderer Weg ein.
mfg
Nico

php::bar PHP Wiki   -   Listenarchive