nginx conflito do índice try_files

1

Estou tentando obter uma configuração com o nginx para:

  • use index.html para '/'
  • limpe os URLs .html
  • padrão para 404, se nenhum arquivo correspondente for encontrado

Meu bloco de servidores é assim:

server {
    listen      80;
    server_name 127.0.0.1;

    index index.htm;

    location / {
        root "static";
        try_files $uri.html =404;
    }
}

Neste momento, a visita '/' vai para o 404. Já tentei soluções comuns como:

try_files $uri.html $uri/ =404;

mas estes permitem tanto '/ page' e '/page.html' como URLs válidos e eu quero evitar duplicatas.

Alguma sugestão?

Obrigado,
Gabriel

    
por Gabriel 05.03.2014 / 11:33

1 resposta

0

Sua diretiva root tem dois problemas:

  1. Ele usa um caminho relativo. Quando um caminho relativo é usado, é relativo a um diretório padrão compilado no nginx. Você sabe qual delas é? É melhor especificar caminhos absolutos.
  2. Está no lugar errado. A diretiva root deve ser especificada no bloco server . Este é um dos misgrigurations nginx mais comuns .
por 05.03.2014 / 12:03

Tags