Saltar a contenido

internal-redirect: Redirección interna a una URI especificada

Instalación

Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, entre otras:

  • RedHat Enterprise Linux 7, 8, 9 y 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-internal-redirect
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-internal-redirect

Habilita el módulo añadiendo lo siguiente al principio de /etc/nginx/nginx.conf:

load_module modules/ngx_http_internal_redirect_module.so;

Este documento describe nginx-module-internal-redirect v1.0.1 publicado el 08 de marzo de 2026.


server {
    listen 127.0.0.1:80;
    server_name localhost;

    location /old {
        internal_redirect -i ^/old(.+) /new$1 phase=preaccess;
    }

    location /new {
        return 200 'current uri is: $uri';
    }
}

Directivas

internal_redirect

Sintaxis: internal_redirect [-i] pattern replacement [phase=] [flag=] [if= | if!=]

Predeterminado: -

Contexto: http, server, location

Establece la nueva URI para la redirección interna de la solicitud. También es posible usar una ubicación con nombre en lugar de la URI. El valor de reemplazo puede contener variables. Si el valor de la uri está vacío, entonces no se realizará la redirección. Después de que ocurra una redirección interna, la URI de la solicitud se cambiará, y la solicitud se devolverá a la fase NGX_HTTP_SERVER_REWRITE_PHASE (server_rewrite). La solicitud continúa con una ubicación predeterminada del servidor. Posteriormente, en NGX_HTTP_FIND_CONFIG_PHASE (find_config) se elige una nueva ubicación basada en la nueva URI de la solicitud.

Para obtener más información sobre las fases de solicitud de nginx, consulta Development guide#http_phases

El parámetro opcional -i especifica que se debe realizar una coincidencia de expresión regular sin distinción entre mayúsculas y minúsculas.

El parámetro opcional phase= se utiliza para indicar la fase en la que esta regla tiene efecto. Los valores posibles son preaccess, access, precontent y content. Las reglas de cada fase se ejecutarán completamente antes de que se realice la redirección interna. El valor predeterminado es preaccess.

El parámetro opcional flag= se utiliza para acciones adicionales después de evaluar la regla. El valor de este parámetro puede ser uno de: * break detiene el procesamiento del conjunto actual de reglas en esta fase, y realiza inmediatamente una redirección interna; * status_301 devuelve una redirección con el código 301. * status_302 devuelve una redirección con el código 302. * status_303 devuelve una redirección con el código 303. * status_307 devuelve una redirección con el código 307. * status_308 devuelve una redirección con el código 308.

El parámetro if habilita la redirección condicional. Una solicitud no será redirigida si la condición se evalúa como "0" o una cadena vacía. También puedes usar la forma if!= para hacer juicios negativos.