redirect

Функция redirect позволяет перенаправлять пользователя на другой URL. redirect может использоваться в серверных компонентах (Server Components), клиентских компонентах (Client Components), обработчиках маршрутов (Route Handlers) и серверных действиях (Server Actions).

При использовании в контексте потоковой передачи (streaming context) функция добавит мета-тег для выполнения перенаправления на стороне клиента. В противном случае будет возвращён HTTP-ответ с кодом 307 (временное перенаправление).

Если ресурс не существует, вместо этого можно использовать функцию notFound.

Полезно знать: Если требуется вернуть HTTP-перенаправление с кодом 308 (постоянное) вместо 307 (временное), можно использовать функцию permanentRedirect.

Параметры

Функция redirect принимает два аргумента:

redirect(path, type)
ПараметрТипОписание
pathstringURL для перенаправления. Может быть относительным или абсолютным.
type'replace' (по умолчанию) или 'push' (по умолчанию в Server Actions)Тип выполняемого перенаправления.

По умолчанию redirect использует push (добавляет новую запись в стек истории браузера) в серверных действиях (Server Actions) и replace (заменяет текущий URL в стеке истории браузера) во всех остальных случаях. Это поведение можно переопределить, указав параметр type.

Параметр type не имеет эффекта при использовании в серверных компонентах (Server Components).

Возвращаемое значение

Функция redirect не возвращает никакого значения.

Пример

Вызов функции redirect() вызывает ошибку NEXT_REDIRECT и прекращает рендеринг сегмента маршрута, в котором она была вызвана.

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')
  }

  // ...
}

Полезно знать: redirect не требует использования return redirect(), так как использует тип TypeScript never.

ВерсияИзменения
v13.0.0Добавлена функция redirect.