set_cache_ttl 関数は、パスまたは HTTP ステータスコードに基づいてキャッシュ対象リソースの生存時間(TTL)を設定します。
set_cache_ttl
構文
set_cache_ttl(type, ttl)パラメーター
| パラメーター | 型 | 説明 |
|---|---|---|
type | 文字 | キャッシュの種別。有効な値: path、code。 |
ttl(type が path の場合) | 数値 | 一致したリソースの TTL(秒単位)。 |
ttl(type が code の場合) | 文字 | 特定の HTTP ステータスコードに対する TTL 値。フォーマットは <code>=<seconds>,... です。例: '301=10,302=5'。 |
戻り値
成功時は true を返し、失敗時は false を返します。
使用例
パスによる TTL の設定
type='path' を指定すると、URI パターンに一致するリソースに対して TTL を適用できます。ttl の値は、秒単位の数値です。
if eq(substr($uri, -4, -1), '.mp4') {
set_cache_ttl('path', 5) // .mp4 ファイルに一致:5 秒間キャッシュ
}
if match_re($uri, '^/201801/mp4/') {
set_cache_ttl('path', 50) // /201801/mp4/ で始まるパスに一致:50 秒間キャッシュ
}
if match_re($uri, '^/201802/flv/') {
set_cache_ttl('path', 10) // /201802/flv/ で始まるパスに一致:10 秒間キャッシュ
}HTTP ステータスコードによる TTL の設定
type='code' を指定すると、特定の HTTP ステータスコードに対して TTL 値を割り当てられます。ttl の値は、<ステータスコード>=<秒数> の形式の文字列であり、複数のエントリはカンマで区切ります。
if match_re($uri, '^/image') {
set_cache_ttl('code', '301=10,302=5') // /image で始まる URI に対して:301 は 10 秒、302 は 5 秒間キャッシュ
}ファイル名と URI に対して個別の TTL を設定します。