【Apache】Expiresヘッダ(有効期限)を出す
問題
HTTPレスポンスヘッダで、Expiresを出力したい。
(Webブラウザにキャッシュを活用してもらうため)
答え
Apache モジュール mod_expires を有効にする。
.htaccess でも httpd.conf でもよいので、以下のような設定を追加する。
ExpiresActive On ExpiresDefault "access plus 7 days"
ExpiresActive On で、Expires ヘッダの生成を有効にする。
ExpiresDefault “access plus 7 days” で、個別に指定しなければ、有効期限は7日後になる。
個別に設定をしたいときはさらに設定を追加する。
例)「CSSだけは長期間そのままでいい」とき
ExpiresActive On ExpiresDefault "access plus 14 days" ExpiresByType text/css "access plus 1 month 2 days 3 hours"
例)「JavaScriptやCSSはよく変更するけど、画像だけは1年ぐらいキャッシュを使ってもらっていい」というとき
ExpiresActive On ExpiresDefault A36000 ExpiresByType image/* A31536000
基準はアクセス access(= 今 now)か、更新日 modification。
期間の指定は、以下のような書き方ができる。
- A31536000
- “access plus 30 days”
- “access plus 1 month 2 days 3 hours”
- M86400
- “modification plus 5 hours 3 minutes”
mod_expiresが有効かどうか不明な場合はIfModuleで囲んでおくのもよい。
<IfModule expires_module> ExpiresActive On ExpiresDefault "access plus 2 weeks" </IfModule>
コメント