2009-06-24 7 views
48

Wie kann ich verfallen Header in PHP + Apache einrichten? Ich benutze derzeit einen auto_prepend, um Ressourcen zu entschlüsseln gziped, aber ich möchte auch den HTTP-Cache maximieren.Setup HTTP verfällt Header mit PHP und Apache

Wie kann ich diese einrichten?

Antwort

100

Es gibt zwei Möglichkeiten, dies zu tun. Die erste besteht darin, den Header in Ihrem PHP-Code anzugeben. Das ist großartig, wenn Sie die Ablaufzeit programmatisch anpassen möchten. Zum Beispiel könnte ein Wiki eine längere Ablaufzeit für eine Seite festlegen, die nicht sehr oft 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 oder ändern Sie Ihre httpd Config zu erstellen. In einer Shared Hosting-Umgebung ist das Ändern Ihrer .htaccess-Datei ziemlich üblich. Um dies zu tun, müssen Sie wissen, ob Ihr Server mod_expires, mod_headers oder beides unterstützt. Der einfachste Weg ist einfach Versuch und Irrtum, aber einige Apache-Server sind so konfiguriert, dass Sie diese Informationen über die Seite/server-info anzeigen können. Wenn Ihr Server beide mod_expires und mod_headers hat, und möchten, dass Sie den Ablauf auf der statischen Ressourcen setzen, versuchen Sie dies in Ihrer .htaccess-Datei setzen:

# 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> 

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

+0

Also habe ich recht, wenn ich denke, dass .flv, .ico etc. automatisch die richtigen Header haben? sehr cool – Tom

+3

Header anhängen Cache-Control "public" => Diese Zeile gibt mir einen 500 internen Serverfehler. – noobcode

+0

@noobcode Ich habe genau das gleiche Problem. Wie hast du das bitte gelöst? – Houman

1

Haben Sie etwas versucht?

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

Was tut Diese Durchschnitts? –