2011-05-28 2 views
3

S'il vous plaît jeter un oeil sur mon site: vynoracontrôle de cache PHP ne semble pas fonctionner

Il est pas fini. J'ai mis un en-tête de PHP dans le haut de ma page HTML:

<?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?> 
<?php 
    header("Cache-Control: max-age=6000"); 
?> 

Quand je vais à pagespeed de Google, il me dit que j'optimiser mon cache du navigateur, s'il vous plaît jeter un oeil: Google pagespeed

Mais j'ai déjà utilisé PHP. Alors, comment est-ce possible?

Répondre

2

Problème pas dans cette page et non dans des scripts PHP. Voir les suggestions de Google:

Les ressources suivantes pouvant être mises en mémoire cache ont une durée de vie courte et une fraîcheur de . Spécifiez une expiration au moins une semaine dans le avenir pour les ressources suivantes:

Cela signifie, vous devez mettre en cache vos fichiers statiques .
Comme je peux le voir, vous utilisez Apache. Dans ce cas, vous pouvez utiliser mod_expires

Par exemple, vous pouvez ajouter dans le fichier .htaccess ces lignes:

ExpiresActive On 
ExpiresDefault "access plus 1 seconds" 
ExpiresByType text/html "access plus 1 seconds" 
ExpiresByType image/x-icon "access plus 2592000 seconds" 
ExpiresByType image/gif "access plus 2592000 seconds" 
ExpiresByType image/jpeg "access plus 2592000 seconds" 
ExpiresByType image/png "access plus 2592000 seconds" 
ExpiresByType text/css "access plus 604800 seconds" 
ExpiresByType text/javascript "access plus 86400 seconds" 
ExpiresByType application/x-javascript "access plus 86400 seconds" 
+0

Salut, J'ai cherché le .htaccess sur mon serveur mais je ne peux pas le trouver .... Pourrait-il être que je l'ai supprimé par accident ?? Est-ce possible? Comment puis-je en faire un nouveau. Je l'ai essayé avec le bloc-notes et l'enregistrer comme .htaccess Quand je le place à côté de mon index.php la page Web ne fonctionne pas (erreur) Quand je le mets dans la racine (à côté du dossier public etc) cela ne fait rien. – Youss

+0

@yomoore, ce fichier devrait être dans le même dossier où le fichier index.php est placé, utilisez [Notepad ++] (http://notepad-plus-plus.org/) ou un IDE (netbeans, PhpStorm), n'utilisez pas Bloc-notes (il ajoute des symboles stupides invisibles au début du fichier). –

+0

Cela fonctionne maintenant :) J'ai téléchargé notepad ++ et copyd votre texte. Et j'ai aussi enlevé le php ... Merci beaucoup, tu as sauvé ma journée. – Youss

1

à la page du cache dans le navigateur des utilisateurs ajouter des entêtes thèses:

header("Cache-Control: private, max-age=6000, pre-check=6000"); 
header("Pragma: private"); 
header("Expires: " . gmdate("D, d M Y H:i:s"). " GMT"); 

gZip:

http://www.whatsmyip.org/http_compression/?url=aHR0cDovL3d3dy52eW5vcmEuY29tLw==

dit son format gzip

http://redbot.org/?uri=http%3A%2F%2Fwww.vynora.com%2F

dit son gzip

+0

En quoi est-ce différent de ce que j'ai déjà? Il me semble que c'est la même chose. – Youss

1

Cela peut ne pas fonctionner, car il est possible d'espace avant-tête().Essayez comme ceci:

<?php 
    if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { 
     ob_start("ob_gzhandler"); 
    } else { 
     ob_start(); 
    } 
    header("Cache-Control: max-age=6000"); 
?> 

Vous devez définir la même tête expiré, parce que les anciens navigateurs ne comprennent pas « max-age ».

Btw: Votre serveur envoie actuellement "max-age: 0".

+0

Que voulez-vous dire par '' Votre serveur envoie actuellement '' max-age: 0 '' 'Comment avez-vous vérifié cela? – Youss

+0

Obtenez le plugin LiveHttpHeaders pour Firefox. Mise à jour: Ah maintenant son 6000. :) – reeaal