Nginx, redirección de parámetros GET

4 03 2011

Creando redirecciones en Nginx según los parámetros GET:

Si nos llega una url tal que:
http://www.midominio.com/index.php?buscador=50

y la queremos redirigir a sin pasar parámetros:
http://www.midominio.com/es/buscador

Se tiene que definir la siguiente condición en el archivo de definición del host dentro del bloque “server {”
location /index.php {
if ($args ~* id=buscador$) {
rewrite ^.+$ /es? redirect;
break;
}

Si hay que pasar parámetros, (quedaría algo así: http://www.midominio.com/es/buscador?50 ) hay que quitar el signo “?” del final del destino de la regla del rewrite.

También se puede redireccionar con algún parámetro definido:
if ($args ~* valor=43$) {
rewrite ^.+$ /es/cosas\?taxon=34? redirect;
break;
}
}

Si tienen que ser redirecciones dinámicas, variando el valor a recoger:
Si nos llega una url tal que:
http://www.midominio.com/index.php?ID=50

y la queremos redirigir a sin pasar parámetros:
http://www.midominio.com/es/buscador/50

Así:
location /index.php {
if ($args ~* "^ID=([0-9]+)$") {
set $cid $1;
rewrite ^ /es/buscador/$cid/? redirect;
break;
}

}

Luego, también se pueden hacer redirecciones “normales”:
rewrite ^/caja.php(.*)$ http://www.dominio.com/ permanent;

Advertisements

Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: