J'ai essayé ça? Si le travail à la fois .htaccess
, httpd.conf
et dans un VirtualHost
(généralement placé dans httpd-vhosts.conf
si vous avez inclus à partir de votre httpd.conf)
<filesMatch "\.(html|htm|js|css)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>
100% empêchent les fichiers d'être mis en cache
Ceci est similaire à la façon dont les annonces Google utilisent l'en-tête Cache-Control: private, x-gzip-ok = ""> pour empêcher la mise en cache des annonces par les mandataires et les clients.
Depuis http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html
Et éventuellement, ajoutez l'extension pour les fichiers modèles que vous récupérez si vous utilisez une extension autre que .html
pour ceux-ci.
Charlie Rudenstål
la source
LoadModule headers_module lib/modules/mod_headers.so
<filesMatch "\.+">
ou<filesMatch ^>
Basé sur l'exemple ici: http://drupal.org/node/550488
Ce qui suit fonctionnera probablement dans .htaccess
la source
<IfModule mod_expires.c>
and</IfModule>
.. si mod_expires n'est pas activé, vous obtiendrez une erreur au lieu que ces directives soient silencieusement ignorées.J'ai eu le même problème, mais j'ai trouvé une bonne solution ici: arrêter la mise en cache pour PHP 5.5.3 dans MAMP
En gros, trouvez le fichier php.ini et commentez les lignes OPCache. J'espère que cette réponse alternative aidera également les autres.
la source
Sans mod_expires, il sera plus difficile de définir des en-têtes d'expiration sur vos fichiers. Pour tout ce qui est généré, vous pouvez certainement définir des en-têtes par défaut sur la réponse, en faisant le travail de mod_expires comme ça:
(extrait de: réponse Stack Overflow de @brianegge , où la solution mod_expires est également expliquée)
Maintenant, cela ne fonctionnera pas pour les fichiers statiques , comme vos fichiers javascript. Quant aux fichiers statiques, il n'y a qu'apache (sans aucun module d'expiration) entre le navigateur et le fichier source. Pour empêcher la mise en cache des fichiers javascript, ce qui se fait sur votre navigateur, vous pouvez utiliser un jeton aléatoire à la fin de l'url js, quelque chose comme
?rd=45642111
, de sorte que l'URL ressemble à:Si cette URL sur la page est générée par un fichier PHP, vous pouvez simplement ajouter la partie aléatoire avec PHP. Cette façon de randomiser l'url en ajoutant simplement des paramètres de chaîne de requête aléatoires est la base du paramètre no-cache de la requête ajax jQuery par exemple. Le navigateur ne considérera jamais que 2 URL ayant des chaînes de requête différentes sont identiques et n'utilisera jamais la version mise en cache.
ÉDITER
Notez que vous devez également tester les mod_headers . Si vous avez mod_headers, vous pouvez peut-être définir les en-têtes Expires directement avec le mot-clé Header .
la source
la source