it-swarm.com.de

Das Setup-HTTP verfällt die Verwendung von Headern PHP und Apache

Wie kann ich Kopfzeilen in PHP + Apache einrichten? Ich verwende derzeit ein auto_prepend, um Ressourcen zu liefern, die mit GZIP versehen sind, aber ich möchte auch den HTTP-Cache maximieren.

Wie kann ich diese einrichten?

51
Tom

Dafür gibt es zwei Möglichkeiten. Die erste besteht darin, den Header in Ihrem PHP-Code anzugeben. Dies ist ideal, wenn Sie die Ablaufzeit programmgesteuert anpassen möchten. Ein Wiki kann beispielsweise eine längere Verfallszeit für eine Seite festlegen, die nicht sehr häufig bearbeitet wird. 

header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60))); // 1 hour

Ihre zweite Wahl ist, eine .htaccess -Datei zu erstellen oder Ihre httpd-Konfiguration zu ändern. In einer Shared-Hosting-Umgebung ist das Ändern der .htaccess-Datei durchaus üblich. Dazu müssen Sie wissen, ob Ihr Server mod_expires, mod_headers oder beide unterstützt. Der einfachste Weg ist das einfache Ausprobieren, aber einige Apache-Server sind so konfiguriert, dass Sie diese Informationen über die Seite/server-info anzeigen können. Wenn Ihr Server sowohl über mod_expires als auch mod_headers verfügt und Sie das Ablaufdatum für statische Ressourcen festlegen möchten, fügen Sie dies in Ihre .htaccess-Datei ein:

# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0

# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>

Weitere Kombinationen und weitere Beispiele finden Sie unter: http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html

110
brianegge

Dieses Apache-Modul könnte hilfreich sein: http://httpd.Apache.org/docs/2.0/mod/mod_expires.html

2
middus

Hast du so etwas probiert?

<?php
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>
0
acemtp