Como configurar o Nginx para tratar '?…' como parte do nome do arquivo

7

O Nginx está exibindo apenas arquivos estáticos, mas alguns dos nomes de arquivos contêm '?'. Sim, o ponto de interrogação.

Todos os URLs que contêm '?' rendimento 404 mesmo que o arquivo realmente exista. por exemplo,

> GET /foo?lang=ar.html HTTP/1.1
...
...
< HTTP/1.1 404 Not Found

Enquanto um arquivo chamado foo? lang = ar.html existe no local esperado.

Gostaria de saber se existe uma maneira de dizer ao Nginx para tratar a solicitação inteira como URL, incluindo o que está sendo traduzido como uma string de consulta.

A única solução que tenho em mente é escrever um pequeno servidor web que faz isso e ter nginx reverse proxy que servidor web, mas eu prefiro fazê-lo sozinho com nginx.

    
por Tzury Bar Yochay 05.10.2012 / 18:14

1 resposta

10

Você pode usar try_files com $request_uri ou $uri$is_args$args , dependendo se você deseja decodificar os bits codificados por url ou não ao procurar pelo nome do arquivo.

    
por 05.10.2012 / 20:42

Tags