Modification fichier .htaccess pour exploiter la mise en cache du navigateur
Bonjour,
Je suis débutante !
Cela fait plusieurs semaines que je me casse la tête pour améliorer le temps de chargement de mon site en me basant sur google speed test. Il y a notamment un point où je bloque.
Message google speed test
Citation:
Certaines ressources pouvant être mises en cache ont une durée d'actualisation limitée. Spécifiez un délai d'expiration d'au moins une semaine pour les ressources suivantes :
.../a4d5fb83c796c99a195724db3dd48da9.css (délai d'expiration non spécifié)
.../a40b376cccbef49cece3bbabbc2f9e62.js (délai d'expiration non spécifié)
.../bg-featsubs-b.gif (délai d'expiration non spécifié)
.../bg-featsubs-m.gif (délai d'expiration non spécifié)
.../bg-featsubs-t.gif (délai d'expiration non spécifié)
.../border-footer-list-menu-entree.gif (délai d'expiration non spécifié)
.../border-footer-list.gif (délai d'expiration non spécifié)
.../bullet-footer-list-item.gif (délai d'expiration non spécifié)
.../sprites-sm.gif (délai d'expiration non spécifié)
.../sprites-hm.gif (délai d'expiration non spécifié)
.../feed.png (délai d'expiration non spécifié)
.../spip.png (délai d'expiration non spécifié)
J'ai cherché sur le web et ai modifié mon fichier .htaccess
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <ifModule mod_headers.c>
# any Header directives go here
</ifModule>
# 1 YEAR
<filesMatch ".(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
</filesMatch>
# 1 WEEK
<filesMatch ".(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
# 2 DAYS
<filesMatch ".(xml|txt|css|js)$">
Header set Cache-Control "max-age=172800, proxy-revalidate"
</filesMatch>
# 1 MIN
<filesMatch ".(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</filesMatch>
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault A300
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A3600
ExpiresByType text/css A3600
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A300
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A300
</ifModule> |
Et ça ne fait absolument rien.
Savez-vous ce qu'il faudrait faire pour régler ce problème?
Faut-il faire d'autres modifications en plus du fichier .htaccess?
Merci beaucoup pour votre aide...
Gestion du cache / optimisation du page-speed
Hello,
je ne suis pas un expert en commande apache, mais je pense que le début de ton code comporte une erreur :
Code:
1 2 3 4
| <ifModule mod_headers.c>
# any Header directives go here
...A priori, le code (qui est dessous) doit se trouver ici, entre ces deux balises pour que ça fonctionne
</ifModule> |
Sinon, j'ai eu un bon résultat en copiant le code que j'ai trouvé sur cette page (Blog de David Lemaitre).
Mais je n'ai pas vraiment cherché à comprendre; je n'ai fait que copier-coller le code.
Si quelqu'un à des remarques à faire sur ce code, ça m'intéresse !!
;)
Erreur 500 sur la mise en cache
Bonjour,
Merci pour toutes ces contributions intéressantes.
J'ai de mon côté copier le même code que vous dans mon fichier ht access, ce qui donné cela :
SetEnv PHP_VER 5_3
SetEnv REGISTER_GLOBALS 0
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
## contrôle du cache navigateur - Expire headers
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 7200 seconds"
ExpiresByType image/jpg "access plus 1 week"
ExpiresByType image/jpeg "access plus 1 week"
ExpiresByType image/png "access plus 1 week"
ExpiresByType image/gif "access plus 1 week"
AddType image/x-icon .ico
ExpiresByType image/ico "access plus 1 week"
ExpiresByType image/icon "access plus 1 week"
ExpiresByType image/x-icon "access plus 1 week"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType text/html "access plus 7200 seconds"
ExpiresByType application/xhtml+xml "access plus 7200 seconds"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType application/x-shockwave-flash "access plus 1 week"
</IfModule>
## Mise en cache cache-control
<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=2592000, private"
</FilesMatch>
<FilesMatch "\\.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
Toutefois, lorsque je met ce fichier, j'ai une erreur 500... Quand je remet la version précédente aucun problème :
SetEnv PHP_VER 5_3
SetEnv REGISTER_GLOBALS 0
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Quelqu'un a-t-il une explication ? Je suis sur un serveur APACHE 2.2.20 avec php 5.3
Merci et bonne journée.