Expresiones regulares de NGINX

Hace poco me he encontrado con un problema en las redirecciones de NGINX la cual me hacía un bucle en una de las configuraciones.

Estas configuraciones son usadas por SEO para no dejar enlaces huérfanos o redirigir hacia alguna parte de la web por posicionamiento.

Pues bien no entendía bien lo que pasaba hasta que empecé a indagar un poco en la configuración.

Expresiones Regulares – NGINX

Antes de empezar debemos tener en cuenta que las expresiones regulares las usaremos al bloque de location. Algo a tener en cuenta de ello es que las reglas de NGINX van por orden, es decir que si encuentran una antes de llegar a la nuestra se quedará ahí.

Por lo tanto es importante tener un especial cuidado o control en el orden que establecemos las reglas de location.

A continuación os dejaremos una serie de ejemplos.

Esta ruta debe ser la última ya que englobará todas las peticiones por defecto.

location / {
...
}

Usará este location para todas las URI que empiecen por /images/*.

location /images/ {
...
}

Literales usando «=«

Entrará en esta ruta si se llama de esta manera. Es decir, que si se llama /imgs/zzz/ no entraría. Sin embargo en el anterior apartado si lo hiciéramos sí.

location = /imgs {
...
}

Sensible a las mayúsculas y minúsculas (case sensitive)

Con esta regla le estamos diciendo que todo lo que empiece por «/imgs» será atendida por este location. Importante es que si se llama la ruta «/IMGS» no entrará en este caso.

location ~ /imgs {
...
}

No sensible a las mayúsculas y minúsculas (case insensitive)

Con esta regla le estamos diciendo que todas las extensiones (las del ejemplo) ya sea minúsculas, mayúsculas o como vengan serán atendidas por este location.

location ~* .(png|ico|gif|jpg|jpeg|css|js)$ {
...
}

2 comentarios en “Expresiones regulares de NGINX”

  1. Hola:

    Busco alguien para contratarle la migración de servidor Redmine a versión actual e incluir mejoras visuales y plugins.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *