Tengo que crear una regla de reescritura para Apache, así como para nginx.
Cambio requerido:
/search?q=test&**p**=1 to /search?q=test&**page**=1
Para Apache, el siguiente código funciona bien pero no puedo convertirlo para nginx.
RewriteCond %{QUERY_STRING} ^q=(.*)&p=([0-9]+)(.*)$
RewriteRule ^(search/?)$ /search?q=%1&page=%2 [NC,L,R]
He probado algo como esto:
if ($query_string ~ "^q=(.*)&p=([0-9]+)(.*)$"){
rewrite ^/(search/?)$ /search?q=%1&page=%2 redirect;
}
Pero termina con algo así:
/search?q=%1&page=%2&q=%1&page=%2&q=%1&page=%2&q=%1&page=%2&q
¿Qué estoy haciendo mal?
Respuesta1
Documentación de Nginx sobre la reescritura del módulotiene algunos ejemplos. Básicamente, estás utilizando el carácter incorrecto para identificar los resultados de la expresión regular. Debería ser $
más que %
.
Es posible que también tengas que repetir tu expresión regular para la regla de reescritura de coincidencia.