2009-06-24 5 views

Répondre

100

Il y a deux façons de le faire. Le premier est de spécifier l'en-tête dans votre code php. C'est très bien si vous voulez programmer l'heure d'expiration. Par exemple, un wiki pourrait définir un temps d'expiration plus long pour une page qui n'est pas éditée très souvent.

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

Votre deuxième choix est de créer un fichier .htaccess ou modifier votre configuration httpd. Dans un environnement d'hébergement partagé, la modification de votre fichier .htaccess est assez courante. Pour ce faire, vous devez savoir si votre serveur prend en charge mod_expires, mod_headers ou les deux. La méthode la plus simple consiste simplement à tâtonner, mais certains serveurs Apache sont configurés pour vous permettre d'afficher ces informations via la page/server-info. Si votre serveur possède à la fois mod_expires et mod_headers, et que vous souhaitez mettre l'expiration sur les ressources statiques, essayez de mettre dans votre fichier .htaccess:

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

Pour d'autres combinaisons et d'autres exemples voir http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html

+0

Donc je pense que .flv, .ico etc. auront automatiquement les en-têtes appropriés? très cool – Tom

+3

En-tête append Cache-Control "public" => Cette ligne me donne une erreur interne de 500 serveurs. – noobcode

+0

@noobcode J'ai exactement le même problème. Comment avez-vous résolu cela s'il vous plaît? – Houman

1

Avez-vous essayé quelque chose comme?

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

Qu'est-ce que cette moyenne? –

Questions connexes