Aller au contenu

internal-redirect: Redirection interne vers un URI spécifié

Installation

Vous pouvez installer ce module dans n'importe quelle distribution basée sur RHEL, y compris, mais sans s'y limiter :

  • RedHat Enterprise Linux 7, 8, 9 et 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 et 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

Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :

load_module modules/ngx_http_internal_redirect_module.so;

Ce document décrit nginx-module-internal-redirect v1.0.1 publié le 08 mars 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';
    }
}

Directives

internal_redirect

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

Par défaut : -

Contexte : http, server, location

Définit le nouvel URI pour la redirection interne de la requête. Il est également possible d'utiliser un emplacement nommé au lieu de l'URI. La valeur de remplacement peut contenir des variables. Si la valeur de l'uri est vide, alors la redirection ne sera pas effectuée. Après qu'une redirection interne ait eu lieu, l'URI de la requête sera modifié, et la requête sera renvoyée à la phase NGX_HTTP_SERVER_REWRITE_PHASE (server_rewrite). La requête se poursuivra avec un emplacement par défaut du serveur. Plus tard, à la phase NGX_HTTP_FIND_CONFIG_PHASE (find_config), un nouvel emplacement sera choisi en fonction de la nouvelle URI de requête.

Pour plus d'informations sur les phases de requête nginx, veuillez vous référer à Development guide#http_phases

Le paramètre optionnel -i spécifie qu'une correspondance d'expression régulière insensible à la casse doit être effectuée.

Le paramètre optionnel phase= est utilisé pour indiquer la phase dans laquelle cette règle prend effet. Les valeurs possibles sont preaccess, access, precontent et content. Les règles de chaque phase seront exécutées complètement avant que la redirection interne ne soit effectuée. La valeur par défaut est preaccess.

Le paramètre optionnel flag= est utilisé pour des actions supplémentaires après l'évaluation de la règle. La valeur de ce paramètre peut être l'une des suivantes : * break arrête le traitement de l'ensemble actuel de règles à cette phase et effectue immédiatement une redirection interne ; * status_301 renvoie une redirection avec le code 301. * status_302 renvoie une redirection avec le code 302. * status_303 renvoie une redirection avec le code 303. * status_307 renvoie une redirection avec le code 307. * status_308 renvoie une redirection avec le code 308.

Le paramètre if permet une redirection conditionnelle. Une requête ne sera pas redirigée si la condition évalue à "0" ou à une chaîne vide. Vous pouvez également utiliser la forme if!= pour faire des jugements négatifs.

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-internal-redirect.