サーバー (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;
}