-
プログラム的なページリダイレクト: Next.jsでは、
next/router
モジュールを使用してプログラム的なページリダイレクトを実現できます。以下は、URLのリダイレクトの例です。import { useRouter } from 'next/router'; function MyComponent() { const router = useRouter(); // リダイレクトを実行するハンドラー const handleRedirect = () => { router.push('/new-page'); }; return ( <button onClick={handleRedirect}>別のページにリダイレクト</button> ); }
-
静的なリダイレクト:
next.config.js
ファイルを使用して、静的なページリダイレクトを設定することもできます。以下は、next.config.js
ファイルの例です。module.exports = { async redirects() { return [ { source: '/old-page', destination: '/new-page', permanent: true, // 恒久的なリダイレクト }, ]; }, };
上記の例では、
/old-page
へのアクセスは自動的に/new-page
にリダイレクトされます。 -
動的なリダイレクト: 動的なパスに基づいてリダイレクトを行いたい場合、
getServerSideProps
またはgetStaticProps
を使用することができます。以下は、getServerSideProps
を使用した例です。export async function getServerSideProps(context) { const { params } = context; const { id } = params; // idに基づいてリダイレクト先のURLを取得する処理 const redirectUrl = await fetchRedirectUrl(id); return { redirect: { destination: redirectUrl, permanent: true, }, }; }
上記の例では、
/dynamic-page/:id
へのアクセスは、fetchRedirectUrl
関数を使用してリダイレクト先のURLを取得し、そのURLにリダイレクトされます。
これらはNext.js 13でのページリダイレクトのいくつかの例です。使い方に応じて適切な方法を選択してください。