Zum Inhalt

internal-redirect: Interne Weiterleitung zu einer angegebenen URI

Installation

Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:

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

Aktivieren Sie das Modul, indem Sie Folgendes am Anfang von /etc/nginx/nginx.conf hinzufügen:

load_module modules/ngx_http_internal_redirect_module.so;

Dieses Dokument beschreibt nginx-module-internal-redirect v1.0.1 veröffentlicht am 08. März 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';
    }
}

Direktiven

internal_redirect

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

Standard: -

Kontext: http, server, location

Legt die neue URI für die interne Weiterleitung der Anfrage fest. Es ist auch möglich, anstelle der URI einen benannten location zu verwenden. Der Ersatzwert kann Variablen enthalten. Wenn der uri-Wert leer ist, wird die Weiterleitung nicht durchgeführt. Nach einer internen Weiterleitung wird die Anfrage-URI geändert, und die Anfrage wird in die Phase NGX_HTTP_SERVER_REWRITE_PHASE (server_rewrite) zurückgegeben. Die Anfrage wird mit einem Server-Standard-location fortgesetzt. Später, in der Phase NGX_HTTP_FIND_CONFIG_PHASE (find_config), wird basierend auf der neuen Anfrage-URI ein neuer location ausgewählt.

Weitere Informationen zu nginx-Anfragephasen finden Sie unter Development guide#http_phases

Der optionale Parameter -i gibt an, dass ein Übereinstimmungsvergleich mit regulärem Ausdruck ohne Berücksichtigung der Groß-/Kleinschreibung durchgeführt werden soll.

Der optionale Parameter phase= wird verwendet, um die Phase anzugeben, in der diese Regel wirksam wird. Die möglichen Werte sind preaccess, access, precontent und content. Die Regeln jeder Phase werden vollständig ausgeführt, bevor die interne Weiterleitung durchgeführt wird. Der Standardwert ist preaccess.

Der optionale Parameter flag= wird für zusätzliche Aktionen nach der Auswertung der Regel verwendet. Der Wert dieses Parameters kann einer der folgenden sein: * break stoppt die Verarbeitung des aktuellen Regelsatzes in dieser Phase und führt sofort eine interne Weiterleitung durch; * status_301 gibt eine Weiterleitung mit dem Code 301 zurück. * status_302 gibt eine Weiterleitung mit dem Code 302 zurück. * status_303 gibt eine Weiterleitung mit dem Code 303 zurück. * status_307 gibt eine Weiterleitung mit dem Code 307 zurück. * status_308 gibt eine Weiterleitung mit dem Code 308 zurück.

Der Parameter if aktiviert die bedingte Weiterleitung. Eine Anfrage wird nicht weitergeleitet, wenn die Bedingung „0“ oder eine leere Zeichenkette ergibt. Sie können auch die Form if!= verwenden, um negative Beurteilungen vorzunehmen.