Tobias Scheible
Web-Entwickler, Ingenieur & Dozent
Caching per htaccess unterbinden

Datum: Sonntag, 06. Januar 2013

Autor: Tobias Scheible

Kommentar(e): 1 Kommentare

Kategorie: Aktuelles

Tags: Web-Browser, Web-Server, htaccess, Server, Caching

Browser-Caching mit .htaccess unterbinden

Caching ist eine feine Sache, um die Auslieferung einer Website deutlich zu beschleunigen. Besonders, wenn viele Seiten von einer Website aufgerufen werden, können diese deutlich beschleunigt werden. Aber manchmal sorgt das Caching bei einem Update für Probleme.

Neulich hatte ich erst wieder das Problem. Ich ersetzte eine Vorab-Version einer Website durch eine komplett neue Version. Danach gab ich dem Kunden Bescheid, dass die neue Seite online ist und er sie sich anschauen kann. Und prompt kam die Nachricht zurück, dass man auf gar nichts klicken kann. Schnell war klar, dass er die alte Seite sieht, die sich bei ihm noch im Cache des Webbrowsers befand.  Nun gibt es zwei Möglichkeiten eine Seite zu aktualisieren, entweder man bringt dem Kunden bei, wie er die Seite aktualisieren kann, ohne den Cache zu verwenden, oder auf der Server-Seite mit einer .htaccess-Datei.

Die meisten Webbrowser unterstützen mehrere Varianten, um eine Seite neuzuladen. Im Firefox kann zum Beispiel einfach die Seite noch einmal aufgerufen werden. Dabei werden die gültigen Dateien im Cache verwendet. Das gleiche geschieht, wenn der Button zum Aktualisieren angeklickt wird oder die Taste F5 verwendet wird. Mit der Tastenkombination Strg + F5 wird das komplette Neuladen der Seite erzwungen, ohne die Verwendung einer zwischengespeicherten Datei. Diese Kombination funktioniert ebenso im Internet Explorer. Ein gute Übersicht für alle Webbrowser bietet die offizielle Wikipedia Hilfe.

Screenshot von Wikipedia
Screenshot der Tastenkombinationen um den Browsercache zu löschen
Screenshot von Wikipedia Screenshot der Tastenkombinationen um den Browsercache zu löschen

Die Aktualisierung über die Tastenkombination ist natürlich sehr einfach. Einem Kunden kann man dies gut erklären, aber wie bringt man es allen Besuchern bei? Gar nicht. Und deshalb muss man eine serverseitige Lösung verwenden, bei der der Cache nicht mehr verwendet wird. Dazu fügt ihr die folgenden Einträge in die .htaccess-Datei ein:

FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Mon, 1 Jan 2010 01:00:00 GMT"
</ifModule>

Als erstes wird de ETag deaktiviert und danach wird überprüft, ob der Apache das Headers-Modul aktiviert hat. Dann wird die Übertragung des ETag unterbunden und mit der Steuerung des Caches festgelegt, dass kein Caching erfolgen darf und auch nichts zwischengespeichert wird. Das maximale Alter darf nur 0 betragen und jede Datei muss neu überprüft werden. Und zum Schluss wird die maximale Gültigkeit auf einen Zeitpunkt in der Vergangenheit gesetzt, hier der 1.1.2010 um 1 Uhr.

HTTP-Header in Firebug
Ergebnisse des HTTP-Header in Firebug
HTTP-Header in Firebug Ergebnisse des HTTP-Header in Firebug

Gerade, wenn es größere Änderungen an einer Website gibt, sollte man darauf achten, dass das Cachen von Dateien keine Probleme bereitet. Daher sollte eigentlich immer das Cachen für die betroffenen Dateien deaktiviert werden bzw. so eingestellt werden, dass automatisch eine Aktualisierung erfolgt.

Hier gibt es noch einige Tipps und Tricks zum Thema htaccess:
Htaccess – Tipps und Tricks
Stupid htaccess Tricks
10 useful .htaccess snippets to have in your toolbox 

  • Artikel teilen:

Über Tobias Scheible

Tobias Scheible

Tobias Scheible arbeitet als wissenschaftlicher Mitarbeiter an der Hochschule Albstadt-Sigmaringen. Dort ist er als Autor und e-Tutor im Masterstudiengang Digitale Forensik tätig und leite im Bachelorstudiengang IT Security Praktika rund um das Thema Informationssicherheit. Darüber hinaus ist er Mitinitiator des Kompetenzzentrums Cyber Security Lab, welches Forschungsprojekte auf dem Gebiet der IT-Sicherheit koordiniert. Zusätzlich hält er Vorträge und Workshops zu aktuellen Themen der IT-Sicherheit.

Alle Blog-Artikel Website Facebook Twitter Xing

Kommentare

Mordred

gibt es auch eine möglichkeit, die website je besucher nur einmalig komplett neu laden zu lassen?

Schreibe einen Kommentar!

Hilfe zum Kommentieren

Um kommentieren zu können, geben sie bitte mindestens ihren Namen und ihre E-Mail-Adresse an. Bitte nutzen Sie die Kommentarfunktion nicht dazu, andere zu beleidigen oder Spam zu verbreiten. Trolle und Spammer sind hier unerwünscht! Unangemessene Kommentare, die zum Beispiel gegen geltendes Recht verstoßen oder eine Gefährdung anderer Besucher darstellen, werden gelöscht oder angepasst.

Name: Ihr Name, der oberhalb des Kommentars steht, gerne auch Ihren echten Namen, das erleichtert die Kommunikation für alle. Sollte ein Spam-Keyword als Name verwendet werden, kann dieses entfernt oder korrigiert werden.

E-Mail: Ihre E-Mail Adresse dient zur Identifizierung weiterer Kommentare und sie haben die Möglichkeit, ein Avatar-Bild zu verwenden. Dazu müssen Sie mit Ihrer E-Mail Adresse bei Gravatar angemeldet sein. Die E-Mail Adresse wird natürlich nicht veröffentlicht und nicht weitergegeben.

Website: Hier können Sie ihren eigenen Blog bzw. ihre eigene Website eintragen, dadurch wird Ihr Name und Ihr Avatar-Bild verlinkt. Werden rein kommerzielle Angebote offensichtlich beworben, setze ich den Link auf nofollow und unangemessene werden einfach entfernt.

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <hr> <big> <small> <sub> <sup> <u>

nach oben