nginx redirecionamento de localização indesejado com barra final

7

Eu tenho uma localização

location /pass/ {
    proxy_pass http://localhost:12345/;
}

Portanto, deve-se fazer o proxy dos urls http://example.com/pass/whatever para http://localhost:12345/whatever

O que eu não gosto é que o nginx está adicionando barra automaticamente

http://example.com/pass

e torna http://example.com/pass/ via redirecionamento 301

Como posso simplesmente evitar esse comportamento? Eu quero /pass sem barra para ir para outro local. Obrigado antecipadamente!

    
por igor 19.12.2013 / 11:22

2 respostas

2

Como você quer que ele vá para outro local , uma solução natural é adicionar esse local

location /pass {
}

Por padrão, o nginx irá procurar por um arquivo chamado 'pass' na raiz da web. Se você não gostar desse padrão, poderá adicionar mais diretivas dentro desse novo bloco de localização para conseguir isso.

Você também pode usar

location = /pass {
}

de tal forma que o nginx pode achar o jogo um pouco mais rápido.

    
por 19.12.2013 / 20:24
2

Não há nenhuma maneira possível de fazer isso, apenas com o snippet de configuração que você forneceu. Um location /pass/ nunca corresponderia a /pass sem uma barra depois de pass .

Além disso, você tem certeza de que realmente quer fazer o que está tentando fazer? Se você for omitir um redirecionamento de /pass para /pass/ , os caminhos relativos não funcionarão.

    
por 20.12.2013 / 03:51