2015-07-09 14 views
11

Ho una pagina su un sito che utilizza il ramoscello random(), in Firefox e Chrome è impedito il funzionamento perché viene memorizzato nella cache non appena viene caricata la pagina.Disattiva Cache per file specifici con Apache

C'è un modo per disattivare la memorizzazione nella cache di un determinato file tramite le configurazioni di Apache, chiamiamolo default.html o meglio ancora, basta disattivare la memorizzazione nella cache per la parte di script di quel file ma mantenere i file di immagine nella cache?

Ho provato .htaccess ma questo non funziona.

L'unico modo attualmente che consente allo script di lavoro è quello di disattivare la cache a livello globale tramite header PHP:

<?php 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Cache-Control: no-store, no-cache, must-revalidate'); 
header('Cache-Control: post-check=0, pre-check=0', FALSE); 
header('Pragma: no-cache'); 
?> 

Ma, come ho solo bisogno di disattivare la cache per una singola pagina, spegnerlo per tutto sembra pazzo.

+0

'Ho provato .htaccess ma questo non funziona'. Questo è esattamente il posto giusto per farlo. Cosa intendi per "non funziona"? Modifica la domanda e pubblica ciò che hai tentato. – arco444

risposta

22

capito, per indirizzare un file specifico (in questo caso index.php), aggiungere questo codice alla parte inferiore del .htaccess

<Files index.php> 
FileETag None 
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" 
</Files> 

alternativa per indirizzare una selezione specifica di file, vale a dire. Mi piacerebbe mettere in cache le immagini ma nient'altro (i file che corrispondono non verrà memorizzata nella cache html, htm, js, css, php):

<filesMatch "\.(html|htm|js|css|php)$"> 
FileETag None 
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" 
</filesMatch> 

Per controllare la .htaccess si leggeva ho inserito un paio di linee di spazzatura in fondo, scoperto che wasn Da leggere, lo ha rinominato da htaccess a .htaccess e ha funzionato.

Problemi correlati