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 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?
Responder1
Documentação Nginx sobre reescrita de módulotem alguns exemplos. Essencialmente, você está usando o caractere errado para identificar os resultados da expressão regular. Deveria ser $
em vez de %
.
Você também pode ter que repetir sua expressão regular para a regra de reescrita correspondente.