Webサーバ設定ファイルの記述方法

[更新: 2025年08月21日]

本ページでは、オリジンサーバ(Webサーバ)のレスポンスヘッダを使って、キャッシュの有効期限や無効化を細かく制御する方法を解説します。
サイト全体に対してキャッシュ期間を設定する場合は、ウェブアクセラレータのコントロールパネルおよびAPIから設定可能な「デフォルトのキャッシュ期間」を利用することもできます。
キャッシュ仕様詳細については、キャッシュ仕様 をご確認ください。

注意

Cache-Control: no-store または Cache-Control: private または Pragma: no-cache が指定されている場合は、キャッシュ期間を設定していても、無効設定が優先されキャッシュされません。
キャッシュ無効設定のヘッダについては キャッシュ仕様 をご確認ください。

Apacheの設定例

画像・CSS・JS のキャッシュ期間設定(Apache)

<FilesMatch "\.(gif|jpe?g|png|webp|ico|svg|css|js)$">
  Header append Cache-Control "s-maxage=86400"
</FilesMatch>

上記設定により、拡張子 gif、jpeg、jpg、webp、png、ico、svg、css、js のファイルに対して、キャッシュ期間 86400 秒(1日)を指定してウェブアクセラレータにキャッシュさせることができます。 対象ファイルは「|」(パイプ)で区切ることで追加できます。

注釈

  • Apacheの場合は <VirtualHost> 内に記述すると、そのホスト名のみに適用することができます。

  • この設定は .htaccesshttpd.conf 、またはincludeされる設定ファイルに記載してください。

  • エラー応答にもこの設定を適用したい場合は always を指定する必要があります。詳細は Apache Module mod_headers をご確認ください。

特定パス配下のキャッシュ期間設定(Apache)

<VirtualHost> または httpd.conf にて設定する場合

<Location "/assets/">
  Header append Cache-Control "s-maxage=86400"
</Location>

上記設定により、 /assets/ 配下のファイルに対して、キャッシュ期間 86400 秒(1日)を指定してウェブアクセラレータにキャッシュさせることができます。

注釈

  • Apacheの場合は <VirtualHost> 内に記述すると、そのホスト名のみに適用することができます。

  • この設定は <VirtualHost> または httpd.conf に記載してください。

  • エラー応答にもこの設定を適用したい場合は always を指定する必要があります。詳細は Apache Module mod_headers をご確認ください。

.htaccess にて設定する場合

/assets/.htaccess に下記を設定する

# /assets/.htaccess (/assets 配下に設置)
Header append Cache-Control "s-maxage=86400"

上記設定により、 /assets/ 配下のファイルに対して、キャッシュ期間 86400 秒(1日)を指定してウェブアクセラレータにキャッシュさせることができます。

注釈

  • この方法は 対象ディレクトリ(設定例の場合 /assets/ ディレクトリ)配下にのみ適用されます。

  • .htaccess は必ず対象ディレクトリ配下に設置してください。

  • エラー応答にもこの設定を適用したい場合は always を指定する必要があります。詳細は Apache Module mod_headers をご確認ください。

特定パス配下のキャッシュを無効化する設定(Apache)

<VirtualHost> または httpd.conf にて設定する場合

<Location "/admin/">
  Header append Cache-Control "no-store"
</Location>

上記設定により、 /admin/ 配下のファイルに対して、キャッシュ無効化を指定できます。ウェブアクセラレータにキャッシュされません。

注釈

  • Apacheの場合は <VirtualHost> 内に記述すると、そのホスト名のみに適用することができます。

  • この設定は <VirtualHost> または httpd.conf に記載してください。

  • エラー応答にもこの設定を適用したい場合は always を指定する必要があります。詳細は Apache Module mod_headers をご確認ください。

.htaccess にて設定する場合

/admin/.htaccess に下記を設定する

# /admin/.htaccess (/assets 配下に設置)
Header append Cache-Control "no-store"

上記設定により、 /admin/ 配下のファイルに対して、キャッシュ無効化を指定できます。ウェブアクセラレータにキャッシュされません。

注釈

  • この方法は 対象ディレクトリ(設定例の場合 /admin/ ディレクトリ)配下にのみ適用されます。

  • .htaccess は必ず対象ディレクトリ配下に設置してください。

  • エラー応答にもこの設定を適用したい場合は always を指定する必要があります。詳細は Apache Module mod_headers をご確認ください。

nginx利用の場合

画像・CSS・JS のキャッシュ期間設定(nginx)

location ~* \.(gif|jpe?g|png|webp|ico|svg|css|js)$ {
  add_header Cache-Control "s-maxage=86400";
}

上記設定により、拡張子 gif、jpeg、jpg、webp、png、ico、svg、css、js のファイルに対して、キャッシュ期間 86400 秒(1日)を指定してウェブアクセラレータにキャッシュさせることができます。 対象ファイルは「|」(パイプ)で区切ることで追加できます。

注釈

  • nginxの場合は server ディレクティブ内に記述することにより、そのホスト名のみに適用することができます。

  • この設定は nginx.conf または includeされる設定ファイルに記載してください。

  • エラー応答にもこの設定を適用したい場合は always を指定する必要があります。詳細は Module ngx_http_headers_module をご確認ください。

特定パス配下のキャッシュ期間設定(nginx)

location ^~ /assets/ {
  add_header Cache-Control "s-maxage=86400";
}

上記設定により、 /assets/ 配下のファイルに対して、キャッシュ期間 86400 秒(1日)を指定してウェブアクセラレータにキャッシュさせることができます。

注釈

  • nginxの場合は server ディレクティブ内に記述することにより、そのホスト名のみに適用することができます。

  • この設定は nginx.conf または includeされる設定ファイルに記載してください。

  • エラー応答にもこの設定を適用したい場合は always を指定する必要があります。詳細は Module ngx_http_headers_module をご確認ください。

特定パス配下のキャッシュを無効化する設定(nginx)

location ^~ /admin/ {
  add_header Cache-Control "no-store";
}

上記設定により、 /admin/ 配下のファイルに対して、キャッシュ無効化を指定できます。ウェブアクセラレータにキャッシュされません。

注釈

  • nginxの場合は server ディレクティブ内に記述することにより、そのホスト名のみに適用することができます。

  • この設定は nginx.conf または includeされる設定ファイルに記載してください。

  • エラー応答にもこの設定を適用したい場合は always を指定する必要があります。詳細は Module ngx_http_headers_module をご確認ください。