usando nginx try_files e autoindex juntos

2

Eu tenho a seguinte configuração do servidor:

server {
    listen 80;
    server_name _;

    root /var/www/;

    location /calendars/ {
        autoindex on;
        try_files $uri.ics $uri =404;
    }
}

Se esperaria obter a página autoindex ao visitar http://example.com/calendars/ , no entanto, recebo um erro 404 File not found .

Eu quero que o servidor faça algo como esse pseudo-código:

if($uri is directory) {
    if(one of index pages exists in directory) {
        show index page;
    } else {
        show autoindex page;
    }
} else {
    if($uri.ics exists) {
        show $uri.ics;
    } else if($uri exists) {
        show $uri;
    } else {
        show 404 page;
    }
}
    
por Tyilo 27.03.2013 / 03:40

1 resposta

6

Você também precisa verificar o diretório em try_files se quiser que o índice do diretório seja carregado ou gerado automaticamente.

try_files $uri.ics $uri $uri/ =404;

De acordo com a documentação da diretiva try_files :

It is possible to check directory’s existence by specifying a slash at the end of a name, e.g. $uri/

Em outras palavras, $uri significa "tente um arquivo no caminho indicado", enquanto $uri/ significa "tente um diretório no caminho determinado", e o último é o que faz com que a indexação automática desse diretório seja acionada.

    
por 27.03.2013 / 03:43