Apache HTTP Server 第 2.4 版
說明 | 根據使用者指定的條件產生 Expires 和 Cache-Control HTTP 標頭 |
---|---|
狀態 | 擴充功能 |
模組識別碼 | expires_module |
原始檔 | mod_expires.c |
此模組控制 Expires
HTTP 標頭以及 Cache-Control
HTTP 標頭的 max-age
指令,設定在伺服器回應中。到期日可以設定為根據來源檔最後修改時間或根據用戶端存取時間的相對時間。
這些 HTTP 標頭是關於文件有效性和持續性的用戶端說明。如果快取,文件會從快取中擷取,而不是從來源中,直到此時間過去。在此時間過後,快取副本會被視為「過期」且無效,而且必須從來源取得新的副本。
如要修改 Cache-Control
指令,而不是 max-age
(參閱 RFC 2616 第 14.9 節),可以搭配使用 Header
指令。
當 Expires
標頭已經是伺服器產生的回應的一部分,例如由 CGI 程式產生或是從來源伺服器代理,此模組不會變更或加入 Expires
或 Cache-Control
標頭。
ExpiresDefault
和 ExpiresByType
指令也可以定義為較易讀的語法形式
ExpiresDefault "base [plus num type] [num type] ..." ExpiresByType type/encoding "base [plus num type] [num type] ..."
其中 base 為下列之一
存取
現在
(等於 '存取
')修改
plus
關鍵字是選用的。num 應為整數值 [可接受 atoi()
],而 type 是下列之一項
年
月
週
日
小時
分鐘
秒
例如,下列指令任何一則可讓文件在存取後預設 1 個月後到期
ExpiresDefault "access plus 1 month" ExpiresDefault "access plus 4 weeks" ExpiresDefault "access plus 30 days"
可透過新增多個「num type」子句對過期時間進行微調
ExpiresByType text/html "access plus 1 month 15 days 2 hours" ExpiresByType image/gif "modification plus 5 hours 3 minutes"
請注意,如果使用修改日期基礎設定,則 不會 將 Expires 標頭新增到達 disk 上檔案外的內容。這是因為此類內容沒有修改時間。
說明 | 啟用生成 Expires 標頭 |
---|---|
語法 | ExpiresActive On|Off |
預設值 | ExpiresActive Off |
內容 | 伺服器設定、虛擬主機、目錄、.htaccess |
覆寫 | 索引 |
狀態 | 擴充功能 |
模組 | mod_expires |
此指令啟用或停用為相關文件的範疇產生 Expires
和 Cache-Control
標頭。(也就是說,如果在 .htaccess
檔案中找到,例如,它只適用於從該目錄中產生的文件)如果設為 Off
,不會為範疇中的任何文件產生標頭(除非在較低層級覆寫,例如 .htaccess
檔案覆寫伺服器設定檔)。如果設定為 On
,標頭會根據 ExpiresByType
和 ExpiresDefault
指令中的條件加入至載入的文件中。(也就是說) 。
請注意,此指令並未保證會產生 Expires
或 Cache-Control
標題。如果未符合條件,不會送出任何標頭,且效應會就像此指令未指定一樣。
說明 | 根據 MIME 類型設定的 Expires 標頭值 |
---|---|
語法 | ExpiresByType MIME 類型 < |
內容 | 伺服器設定、虛擬主機、目錄、.htaccess |
覆寫 | 索引 |
狀態 | 擴充功能 |
模組 | mod_expires |
此指令為特定類型(例如,text/html
)文件的 Expires
標頭和 Cache-Control
標頭的值定義 max-age
指令。第二個參數設定會新增至基本時間中的秒數,以建構到期日。Cache-Control: max-age
是藉由減去到期日時間請求時間計算得出,並以秒數表示成果。
基底的時間應為檔案的最後修改時間,或客戶端存取文件的時間。應使用哪一個由 <code>
欄位指定;M
表示應使用檔案的最後修改時間做為基底時間,A
表示應使用客戶端的存取時間。
兩者效果的差異很細微。若使用 M
,則所有快取中的文件的目前副本將會同時過期,這很適用於像是每週公告且總是位於相同 URL 的檔案。若使用 A
,則每個客戶端的過期日期不同;這很適用於很少變動的影像檔案,特別是對於所有引用相同影像的相關文件組(亦即,會在相對短的時間內重複存取影像)。
# enable expirations ExpiresActive On # expire GIF images after a month in the client's cache ExpiresByType image/gif A2592000 # HTML documents are good for a week from the # time they were changed ExpiresByType text/html M604800
請注意,此指令僅在指定 ExpiresActive On
時才有效。它會僅針對指定的 MIME 類型,覆寫由 ExpiresDefault
指令設定的任何過期日期。
您也可以使用前面文件中說明的 替代語法 指定逾期時間計算。
說明 | 計算逾期時間的預設演算法 |
---|---|
語法 | ExpiresDefault <code>seconds |
內容 | 伺服器設定、虛擬主機、目錄、.htaccess |
覆寫 | 索引 |
狀態 | 擴充功能 |
模組 | mod_expires |
此指令設定受影響領域中所有文件的逾期時間計算預設演算法。它可以逐一類型由 ExpiresByType
指令覆寫。有關引數語法的詳細資訊,請參閱該指令的說明,以及 替代語法 說明。