Nginx ignoriert Expires-Header für Unterverzeichnisse

Nginx ignoriert Expires-Header für Unterverzeichnisse

Ich habe nginx auf meinem Server (Fedora 21 x64) kompiliert und installiert.

Ich habe Ablaufdaten und einige zusätzliche Header für statische Inhalte hinzugefügt. Aber nginx fügt keine Ablaufdaten und zusätzlichen Header für Stammverzeichnisse und Unterverzeichnisse hinzu.

Lassen Sie mich das klar erklären.

mydomain.com/anything.html <-- Läuft ab + Zusätzliche Header hinzugefügt.

mydomain.com/index.html --> (Weiterleitung) mydomain.com/ <-- Keine Header, keine Ablaufdaten.

mydomain.com/projects/index.html --> (Weiterleitung) mydomain.com/projects/ <-- Keine Header, keine Ablaufdaten.

Ich habe meinen Server so konfiguriert, dass /index.html in das übergeordnete Unterverzeichnis umgeleitet wird.

Hier ist der Teil der Konfiguration:

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

Antwort1

Keine Sorge. Es ging darum, die Dinge neu zu ordnen.

Hier ist die funktionierende Konfiguration.

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

verwandte Informationen