Pular para conteúdo

internal-redirect: Redirecionamento interno para um URI especificado

Instalação

Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:

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

Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:

load_module modules/ngx_http_internal_redirect_module.so;

Este documento descreve o nginx-module-internal-redirect v1.0.1 lançado em 08 de março 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';
    }
}

Diretrizes

internal_redirect

Sintaxe: internal_redirect [-i] padrão substituição [fase=] [flag=] [if= | if!=]

Padrão: -

Contexto: http, server, location

Define o novo URI para o redirecionamento interno da solicitação. Também é possível usar uma localização nomeada em vez do URI. O valor de substituição pode conter variáveis. Se o valor do uri estiver vazio, o redirecionamento não será realizado. Após um redirecionamento interno, o URI da solicitação será alterado, e a solicitação será retornada para a fase NGX_HTTP_SERVER_REWRITE_PHASE (server_rewrite). A solicitação prossegue com uma localização padrão do servidor. Mais tarde, na fase NGX_HTTP_FIND_CONFIG_PHASE (find_config), uma nova localização é escolhida com base no novo URI da solicitação.

Para mais informações sobre as fases de solicitação do nginx, consulte Development guide#http_phases

O parâmetro opcional -i especifica que uma correspondência de expressão regular sem distinção entre maiúsculas e minúsculas deve ser realizada.

O parâmetro opcional phase= é usado para indicar a fase em que esta regra entra em vigor. Os valores possíveis são preaccess, access, precontent e content. As regras de cada fase serão executadas completamente antes que o redirecionamento interno seja realizado. O valor padrão é preaccess.

O parâmetro opcional flag= é usado para ações adicionais após a avaliação da regra. O valor deste parâmetro pode ser um dos seguintes: * break interrompe o processamento do conjunto atual de regras nesta fase e realiza imediatamente um redirecionamento interno; * status_301 retorna um redirecionamento com o código 301. * status_302 retorna um redirecionamento com o código 302. * status_303 retorna um redirecionamento com o código 303. * status_307 retorna um redirecionamento com o código 307. * status_308 retorna um redirecionamento com o código 308.

O parâmetro if habilita o redirecionamento condicional. Uma solicitação não será redirecionada se a condição avaliar para “0” ou uma string vazia. Você também pode usar a forma if!= para fazer julgamentos negativos.

GitHub

Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-internal-redirect.