Nginx reescreveu a pergunta

2

Meu objetivo é que as solicitações de /foobar?key=123 sejam redirecionadas para /download/foobar.html?key=123 .

Atualmente, uso o seguinte código para realizar isso:

location /foobar {
  rewrite ^/foobar(.*)$ /download/foobar.html$1 permanent;
}

Isso faz o truque, mas temos alguns códigos antigos que também chamam /FooBar?key=123 e /Foobar?key=123 , o que ignora a regra de reescrita.

Como posso fazer com que eles sejam reescritos também? Poderia usar:

location ~* ^/foobar {
  rewrite ^ /download/foobar.html$1 permanent;
}

mas isso não é um pouco solto de uma regra?

    
por jimg 19.09.2011 / 23:30

1 resposta

4

Primeiro, location diferencia maiúsculas de minúsculas por padrão; location ~* ^/foobar$ corrigirá isso.

Para o rewrite , é sempre sensível a maiúsculas e minúsculas, mas você pode fazer com que sua expressão corresponda a ambos os formulários:

rewrite ^/[Ff]oo[Bb]ar(.*)$ /download/foobar.html$1 permanent;
    
por 19.09.2011 / 23:46

Tags