redirects
リダイレクトは、受信するリクエストパスを別の宛先パスにリダイレクトできます。
リダイレクトを使用するには、next.config.js
でredirects
キーを使用します:
next.config.js
module.exports = {
async redirects() {
return [
{
source: '/about',
destination: '/',
permanent: true,
},
]
},
}
redirects
は非同期関数で、source
、destination
、およびpermanent
プロパティを持つオブジェクトを含む配列を返すことが期待されています:
source
は受信するリクエストパスパターンですdestination
はルーティングするパスですpermanent
はtrue
またはfalse
です。true
の場合はクライアント/検索エンジンに リダイレクトを永遠にキャッシュするよう指示する308ステータスコードを使用し、false
の場合は一時的でキャッシュされない307ステータスコードを使用します
なぜNext.jsは307と308を使用するのですか? 伝統的に302は一時的なリダイレクト、301は永続的なリダイレクトとして使用されていましたが、多くのブラウザはリダイレクトのリクエストメソッドを元のメソッドに関係なく
GET
に変更しました。たとえば、ブラウザがPOST /v1/users
にリクエストし、ステータスコード302
と共に場所が/v2/users
と返された場合、次のリクエストが期待されるPOST /v2/users
ではなくGET /v2/users
になるかもしれません。Next.jsは307の一時的なリダイレクトと308の永続的なリダイレクトステータスコードを使用して、使用されたリクエストメソッドを明示的に保持します。
basePath
:false
またはundefined
-false
の場合、外部リダイレクトのみに使用され、マッチング時にbasePath
は含まれません。locale
:false
またはundefined
- ロケールが一致する際に含まれないかどうか。has
はtype
、key
、value
プロパティを持つhasオブジェクトの配列です。missing
はtype
、key
、value
プロパティを持つmissingオブジェクトの配列です。
リダイレクトはファイルシステムの前にチェックされ、ページや/public