internal-redirect: Redirección interna a una URI especificada
Instalación
Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:
- 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 en la parte superior de /etc/nginx/nginx.conf:
load_module modules/ngx_http_internal_redirect_module.so;
Este documento describe nginx-module-internal-redirect v1.0.1 lanzado 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=
Por defecto: -
Contexto: http, server, location
Establece la nueva URI para la redirección interna de la solicitud. También es posible usar una ubicación nombrada en lugar de la URI. El valor de reemplazo puede contener variables. Si el valor de 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 cambiará, y la solicitud se devolverá a la fase NGX_HTTP_SERVER_REWRITE_PHASE (server_rewrite). La solicitud procede con una ubicación predeterminada del servidor. Más tarde, en NGX_HTTP_FIND_CONFIG_PHASE (find_config), se elige una nueva ubicación basada en la nueva URI de la solicitud.
Para 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 entra en 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 por defecto 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 evalúa a “0” o a una cadena vacía. También puedes usar la forma de if!= para hacer juicios negativos.
GitHub
Puedes encontrar consejos adicionales de configuración y documentación para este módulo en el repositorio de GitHub para nginx-module-internal-redirect.