nginx: use try_files para servir o arquivo em vez do diretório

2

Meu servidor usa nginx e meu domínio veicula páginas HTML estáticas, por exemplo

http://server.com/download.html

Por vários motivos, gostaria que os usuários pudessem buscar download.html pelos seguintes URLs:

http://server.com/download.html  (works)
http://server.com/download       (works)
http://server.com/download/      (works not)

Eu tenho os dois primeiros trabalhando, mas o último sempre retorna /404.html.

É try_files capaz de fazer o que eu quero, ou eu tenho que usar a diretiva rewrite ?

Minha configuração nginx:

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri.html $uri/ /404.html;
    # auth_basic "Restricted";
    # auth_basic_user_file /var/www/upscaledb/htpasswd;
}

Obrigado Christoph

    
por cruppstahl 11.02.2016 / 20:40

1 resposta

1

Se você adicionar um local para reescrever o URI sem a barra final, sua diretiva location / e try_files poderá fazer o resto:

location ~ ./$ { 
    rewrite ^(.+)/$ $1 last; 
}
    
por 11.02.2016 / 21:10

Tags