redirect
La fonction redirect
permet de rediriger l'utilisateur vers une autre URL. redirect
peut être utilisée dans les Composants Serveur, les Composants Client, les Gestionnaires de Route (Route Handlers) et les Actions Serveur (Server Actions).
Lorsqu'elle est utilisée dans un contexte de streaming (streaming context), cette fonction insère une balise meta pour déclencher la redirection côté client. Sinon, elle renvoie une réponse de redirection HTTP 307 à l'appelant.
Si une ressource n'existe pas, vous pouvez utiliser la fonction notFound
à la place.
Bon à savoir : Si vous préférez renvoyer une redirection HTTP 308 (Permanente) au lieu de 307 (Temporaire), vous pouvez utiliser la fonction
permanentRedirect
à la place.
Paramètres
La fonction redirect
accepte deux arguments :
redirect(path, type)
Paramètre | Type | Description |
---|---|---|
path | string | L'URL vers laquelle rediriger. Peut être un chemin relatif ou absolu. |
type | 'replace' (par défaut) ou 'push' (par défaut dans les Actions Serveur) | Le type de redirection à effectuer. |
Par défaut, redirect
utilise push
(ajoute une nouvelle entrée dans la pile d'historique du navigateur) dans les Actions Serveur (Server Actions) et replace
(remplace l'URL actuelle dans la pile d'historique du navigateur) partout ailleurs. Vous pouvez modifier ce comportement en spécifiant le paramètre type
.
Le paramètre type
n'a aucun effet lorsqu'il est utilisé dans les Composants Serveur.
Valeur de retour
redirect
ne renvoie aucune valeur.
Exemple
L'appel de la fonction redirect()
lance une erreur NEXT_REDIRECT
et interrompt le rendu du segment de route dans lequel elle a été lancée.
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')
}
// ...
}
Bon à savoir :
redirect
ne nécessite pas d'utiliserreturn redirect()
car elle utilise le typenever
de TypeScript.
Version | Changements |
---|---|
v13.0.0 | Introduction de redirect . |