2010-09-02 18 views
6

Mod_expires kullanarak expires üstbilgisini ekleyebileceğimi biliyorum. Ancak, Apache sunucusunda mod_expires yüklü değilse ve PHP gibi bir betik dili aracılığıyla dosyalara erişimi yönlendirmek istemediğimde ne yapabilirim?Mod_expires olmadan sona erme başlığını ekle?

cevap

6
elle başlık alanı ayarlamak için mod_header kullanabilirsiniz

: Expires bir absolute time gerektirdiğinden

Header set Expires "..." 

Ama kullanmak Cache-Control 'ın max-age erişim zamanına göre zaman parametreleri:

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

Yani, Expires üstbilgisini kullanmak yerine Cache-Control üstbilgisini mi kullanmak istiyorsunuz? – Sebi

+0

Sadece Cache-Control ve Expires kullanmadan çalışır. – Sebi

1

statik başlıkları sona eriyor varsa, aşağıdakiler bir senin js ve css dosyalarına başlık Expires katacak:

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

Sorun şu ki; Geçerli erişim zamanına göre gelecek tarihi aldatmak ve sabit bir tarih kullanamıyorum. Yani bu işe yaramaz. – Sebi

1

Bu sonraki ziyaretlerde sayfayı yenilemek için tarayıcı söylemeliyiz. Son kullanma tarihi sadece geçmişte olmalı ... geçmişte "sadece" yapmak için PHP'yi kullanarak tarihi ayarlayabilir veya bu cevabı bulduğunuz tarih olarak bırakabilirsiniz!

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

GÜNCELLEME: Özür - Kaçırdığım PHP yoluyla dosya yönlendirme konusunda cümlede "Yapma!" Ayrıca bu HTML meta etiketlerini kullanabilirsiniz:

<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

Üzgünüz, bu işe yaramıyor, çünkü html olmayan dosyalara Expires üstbilgisini eklemem gerekiyor. Ama tamam, ilk sorumu yazmayı unuttum. – Sebi