Aller au contenu

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

Installation

Vous pouvez installer ce module sur 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 au début 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!=]

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é à la place 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 se produit, 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 poursuit avec un emplacement par défaut du serveur. Plus tard, lors de la phase NGX_HTTP_FIND_CONFIG_PHASE (find_config), un nouvel emplacement est choisi en fonction du nouvel URI de la requête.

Pour plus d'informations sur les phases de requête nginx, veuillez consulter 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 active la redirection conditionnelle. Une requête ne sera pas redirigée si la condition est évaluée à « 0 » ou à une chaîne vide. Vous pouvez également utiliser la forme if!= pour effectuer des jugements négatifs.