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;
}

관련 정보