2009-05-25 53 views
2

託管我網站的網絡服務器未返回上次修改或過期的標頭。我想糾正這一點,以確保我的網頁內容可緩存。如何配置apache - 沒有mod_expires或mod_headers - 發送過期頭文件?

我無法訪問apache配置文件,因爲該網站託管在我無法控制的共享環境中。不過,我可以通過.htaccess文件進行配置。服務器 - apache 1.3 - 沒有配置mod_expires或mod_headers,公司不會爲我安裝這些。

考慮到這些限制,我有什麼選擇?

對不起,這裏的職位。我認識到這個問題不是一個嚴格的編程問題,更多的是一個系統管理問題。當serverfault是公開的時候,我會確保我在那裏直接提出這種性質的問題。

回答

3

什麼樣的內容?如果靜態(HTML,圖像,CSS),那麼真正的附加標題的唯一方法是通過前端Web服務器。我很驚訝託管公司沒有啓用mod_headers,雖然他們可能無法啓用它.htaccess。這會讓他們花費更多的帶寬和CPU(即金錢)而不能緩存。

如果它是動態內容,那麼在生成頁面時您將擁有控制權。這將取決於你的語言;這裏是爲PHP(這是從PHP手冊,並且是一個壞榜樣,因爲它也應該設置響應代碼)的例子:

if (!headers_sent()) { 
    header('Location: http://www.example.com/'); 
    exit; 
} 

哦,還有一兩件事有關設置緩存頭:不設置它們時間太長,特別是CSS和腳本。你可能不認爲你想改變這些,但你不想讓一個破碎的網站,而人們仍然在他們的瀏覽器中的舊內容。我會建議4-8小時範圍內的最大緩存設置:適用於單個用戶的會話或工作日,但不會更多。