permanentRedirect
permanentRedirect
関数を使用すると、ユーザーを別のURLにリダイレクトできます。permanentRedirect
は、サーバーコンポーネント、クライアントコンポーネント、ルートハンドラ、およびサーバーアクションで使用できます。
ストリーミングコンテキストで使用する場合、クライアント側でリダイレクトを発行するmetaタグを挿入します。サーバーアクション内で使用する場合、呼び出し元に303 HTTPリダイレクト応答を送信します。それ以外の場合は、呼び出し元に308(永続的)HTTPリダイレクト応答を送信します。
リソースが存在しない場合は、代わりにnotFound
関数を使用できます。
補足: 308(永続的)HTTPリダイレクトの代わりに307(一時的)HTTPリダイレクトを返したい場合は、代わりに
redirect
関数を使用できます。
パラメータ
permanentRedirect
関数は2つの引数を受け取ります:
パラメータ | 型 | 説明 |
---|---|---|
path | string | リダイレクト先のURL。相対パスまたは絶対パスを指定できます。 |
type | 'replace' (デフォルト)または'push' (サーバーアクションのデフォルト) | 実行するリダイレクトの種類。 |
デフォルトでは、permanentRedirect
はサーバーアクションではpush
(ブラウザ履歴スタックに新しいエントリを追加)を、他の場所ではreplace
(ブラウザ履歴スタック内の現在のURLを置き換え)を使用します。type
パラメータを指定することで、この動作を上書きできます。
type
パラメータは、サーバーコンポーネントで使用する場合は効果がありません。
戻り値
permanentRedirect
は値を返しません。
例
permanentRedirect()
関数を呼び出すと、NEXT_REDIRECT
エラーがスローされ、関数が呼び出されたルートセグメントのレンダリングが終了します。
補足:
permanentRedirect
は、TypeScriptnever
型を使用するため、return permanentRedirect()
を使用する必要はありません。