Regra de reescrita do Apache para nginx

0

Eu tenho que criar uma regra de reescrita para o apache, assim como para o nginx.

Alteração necessária:

/search?q=test&**p**=1 to /search?q=test&**page**=1

Para o Apache, o código abaixo funciona bem, mas não consigo convertê-lo para nginx.

RewriteCond %{QUERY_STRING} ^q=(.*)&p=([0-9]+)(.*)$
RewriteRule ^(search/?)$ /search?q=%1&page=%2 [NC,L,R]

Eu tentei algo assim:

  if ($query_string ~ "^q=(.*)&p=([0-9]+)(.*)$"){
    rewrite ^/(search/?)$ /search?q=%1&page=%2 redirect;
  }

Mas termina com algo assim:

/search?q=%1&page=%2&q=%1&page=%2&q=%1&page=%2&q=%1&page=%2&q

O que estou fazendo de errado?

    
por Gierappa 05.02.2018 / 12:55

1 resposta

0

A documentação do Nginx na reescrita do módulo tem alguns exemplos. Essencialmente você está usando o caracter errado para identificar os resultados da expressão regular. Deve ser $ em vez de % .

Você também pode ter que repetir sua expressão regular para a regra de reescrita correspondente.

    
por 05.02.2018 / 13:15