Senza mod_expires sarà più difficile per impostare le intestazioni di scadenza sui file. Per tutto ciò ha generato si può certamente impostare alcune intestazioni di default sulla risposta, facendo il lavoro di mod_expires così:
<?php header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 3600)); ?>
(tratto da: Stack Overflow answer from @brianegge, dove la soluzione mod_expires si spiega anche)
Ora questo won funziona per i file statici , come i file javascript. Per quanto riguarda i file statici c'è solo apache (senza alcun modulo di scadenza) tra il browser e il file sorgente. Per evitare la memorizzazione nella cache di file JavaScript, che è fatto sul vostro browser, è possibile utilizzare un casuale pedina alla fine dell'URL js, qualcosa come ?rd=45642111
, quindi l'url assomiglia:
<script type="texte/javascript" src="my/url/myjs.js?rd=4221159546">
Se questo l'url sulla pagina è generato da un file PHP, puoi semplicemente aggiungere la parte casuale con PHP. Questo modo di randomizzare l'url semplicemente aggiungendo parametri di stringhe di query casuali è l'impostazione di base per l'impostazione no-cache della richiesta jQuery di ajax, ad esempio. Il browser non considererà mai 2 URL con stringhe di query diverse per essere uguali e non utilizzerà mai la versione memorizzata nella cache.
EDIT
noti che si dovrebbe alos testare mod_headers. Se hai mod_headers puoi magari impostare le intestazioni Expires direttamente con la parola chiave Header.
Grazie, questo funziona molto bene in un file .htaccess. Riesco a vedere le opzioni di controllo della cache quando ispeziono le intestazioni e i miei file vengono visualizzati con http 200 anziché 304 tra richieste, proprio ciò di cui avevo bisogno. – dmck
Non dimenticare di aggiungere il comando LoadModule. 'LoadModule headers_module lib/modules/mod_headers.so' – Spen
non funziona in Apache/2.4.12 (Ubuntu) – Sarath