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=
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.