Como verificar o nginx para os parâmetros query_string?

1

Como posso escrever uma condição no teste de configuração do nginx se um parâmetro q foi inserido na URL?

Isso não funciona:

 if ($arg_q) {
   return 301 "/someurl";
 }

Ele pega URLs como

/search?entered_search=1&q=123

Mas não pega URLs como

/search?entered_search=1&q= 
    
por astropanic 28.09.2017 / 08:07

1 resposta

1

Algo como isso pode funcionar. Ele diz "se a sequência de consulta contiver a sequência 'q =' enviar um redirecionamento". Pelo menos é o que eu acho que diz, eu não sou ótimo com o regex. Eu testei e funciona, mas pode haver efeitos colaterais dependendo de quais strings de consulta você pode obter.

if ($query_string ~ q=) {
  return 301 "https://www.example.com";
}

Esta resposta ajudou-me a resolver isso.

    
por 28.09.2017 / 09:51