Nginx はサブディレクトリの有効期限ヘッダーを無視します

Nginx はサブディレクトリの有効期限ヘッダーを無視します

サーバー (Fedora 21 x64) に nginx をコンパイルしてインストールしました。

静的コンテンツに有効期限といくつかの追加ヘッダーを追加しました。しかし、nginx はルートとサブディレクトリに有効期限と追加ヘッダーを追加しません。

それをわかりやすく説明しましょう。

mydomain.com/anything.html <-- 有効期限 + 追加のヘッダーが追加されました。

mydomain.com/index.html --> (リダイレクト) mydomain.com/ <-- ヘッダーなし、有効期限なし。

mydomain.com/projects/index.html --> (リダイレクト) mydomain.com/projects/ <-- ヘッダーなし、有効期限なし。

/index.html をその親サブディレクトリにリダイレクトするようにサーバーを設定しました。

構成の一部は次のとおりです。

if ($request_uri ~ ^(.*/)index\.html($|\?.*)?) {
  return 301 $1$2;
}

location ~* \.html$ {
  expires max;
  add_header "x-ua-compatible" "ie=edge";
  add_header x-frame-options deny;
  add_header x-content-type-options nosniff;
  add_header x-xss-protection "1; mode=block";
  add_header "cache-control" "no-transform";
  access_log logs/static.log;
}

答え1

気にしないでください。物事を再整理する問題でした。

動作構成は次のとおりです。

location ~* \.html$ {
    add_header "x-ua-compatible" "ie=edge";
    add_header x-frame-options deny;
    add_header x-content-type-options nosniff;
    add_header x-xss-protection "1; mode=block";
    add_header "cache-control" "no-transform";
    expires max;
    gzip_static always;
    access_log logs/static.log;
}

location ~* \.(?:html|css|js|txt|xml)$ {
  gzip_static always;
}

関連情報