2010-09-02 10 views
6

So che posso aggiungere l'header expires usando mod_expires. Tuttavia, cosa posso fare se il server Apache non ha mod_expires installato e non voglio instradare l'accesso ai file attraverso un linguaggio di scripting come PHP?Add expire header senza mod_expires?

risposta

6

Si potrebbe utilizzare mod_header per impostare il campo di intestazione manualmente:

Header set Expires "..." 

Ma poiché Expires richiede un absolute time, utilizzare Cache-Control s' max-age parametro per i tempi relativi al tempo di accesso:

Header merge Cache-Control max-age=3600 
+0

Quindi intendi invece di usare l'intestazione Expires, usa l'intestazione Cache-Control? – Sebi

+0

Funziona, utilizza solo Cache-Control e non scade. – Sebi

1

Se avete statica Scade intestazioni, il seguente sarà aggiungere un Expires ai vostri js e file css:

<FilesMatch "\.(js|css)$"> 
Header set Expires "Fri, 01 Jan 2010 00:00:00 GMT" 
</FilesMatch> 
+0

Il problema è che ho bisogno di c alculare la data futura in base al tempo di accesso corrente e non è possibile utilizzare una data fissa. Quindi questo non funzionerà. – Sebi

1

Questo dovrebbe dire al browser per aggiornare la pagina nelle visite successive. La data di scadenza deve essere solo nel passato ... puoi impostare la data usando PHP per renderla "giusta" nel passato, o semplicemente lasciarla come la data in cui hai trovato questa risposta !!!

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Thu, 2 Sep 2010 05:00:00 GMT"); 

UPDATE: Scuse - mi mancava il "non" nella frase sul routing dei file tramite PHP! È inoltre possibile utilizzare questi meta tag HTML:

<meta http-equiv="Cache-Control" content="no-cache"> 
<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="expires" content="Thu, 2 Sep 2010 05:00:00 GMT"> 
+0

Spiacente, questo non funzionerà, perché ho bisogno di aggiungere l'intestazione Expires ai file non-html. Ma ok, ho dimenticato di scriverlo nella mia domanda iniziale. – Sebi