Nginx ignora cabeçalhos expirados para subdiretórios

Nginx ignora cabeçalhos expirados para subdiretórios

Compilei e instalei o nginx no meu servidor (Fedora 21 x64).

Adicionei expirações e alguns cabeçalhos extras para conteúdos estáticos. Mas o problema é que o nginx não adiciona expirações e cabeçalhos extras para raiz e subdiretórios.

Deixe-me explicar isso claramente.

mydomain.com/anything.html <-- Expira + Cabeçalhos extras adicionados.

mydomain.com/index.html --> (redirecionar) mydomain.com/ <-- Sem cabeçalhos, sem expiração.

mydomain.com/projects/index.html --> (redirecionar) mydomain.com/projects/ <-- Sem cabeçalhos, sem expiração.

Configurei meu servidor para redirecionar /index.html para seu subdiretório pai.

Aqui está a parte da configuração:

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

Responder1

Deixa para lá. Era uma questão de reordenar as coisas.

Aqui está a configuração de trabalho.

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

informação relacionada