redirect

Die redirect-Funktion ermöglicht es, Benutzer auf eine andere URL umzuleiten. redirect kann in Server-Komponenten, Client-Komponenten, Route Handlers und Server Actions verwendet werden.

Bei Verwendung in einem Streaming-Kontext wird ein Meta-Tag eingefügt, um die Umleitung clientseitig auszulösen. Andernfalls wird eine 307 HTTP-Weiterleitungsantwort an den Aufrufer gesendet.

Falls eine Ressource nicht existiert, können Sie stattdessen die notFound-Funktion verwenden.

Gut zu wissen: Wenn Sie eine 308 (Permanente) HTTP-Weiterleitung anstelle von 307 (Temporär) bevorzugen, können Sie die permanentRedirect-Funktion verwenden.

Parameter

Die redirect-Funktion akzeptiert zwei Argumente:

redirect(path, type)
ParameterTypBeschreibung
pathstringDie URL, zu der umgeleitet werden soll. Kann ein relativer oder absoluter Pfad sein.
type'replace' (Standard) oder 'push' (Standard in Server Actions)Der Typ der durchzuführenden Umleitung.

Standardmäßig verwendet redirect push (fügt einen neuen Eintrag zum Browser-Verlauf hinzu) in Server Actions und replace (ersetzt die aktuelle URL im Browser-Verlauf) in allen anderen Fällen. Sie können dieses Verhalten überschreiben, indem Sie den type-Parameter angeben.

Der type-Parameter hat keine Auswirkung, wenn er in Server-Komponenten verwendet wird.

Rückgabewert

redirect gibt keinen Wert zurück.

Beispiel

Der Aufruf der redirect()-Funktion wirft einen NEXT_REDIRECT-Fehler und beendet das Rendern des Routen-Segments, in dem er aufgetreten ist.

app/team/[id]/page.js
import { redirect } from 'next/navigation'

async function fetchTeam(id) {
  const res = await fetch('https://...')
  if (!res.ok) return undefined
  return res.json()
}

export default async function Profile({ params }) {
  const team = await fetchTeam(params.id)
  if (!team) {
    redirect('/login')
  }

  // ...
}

Gut zu wissen: redirect erfordert nicht die Verwendung von return redirect(), da sie den TypeScript-Typ never verwendet.

VersionÄnderungen
v13.0.0redirect eingeführt.