あるプロジェクトのサービス終了に伴い、ページにアクセスされたらトップページに全てリダイレクトをするように設定をしたく調べた
Next.jsのredirectsを使う
調べると next.config.js 内で redirects
を使うのが良いことがわかった
単純な使い方は以下
module.exports = { async redirects() { return [ { source: '/about', destination: '/', permanent: true, }, ] }, }
このsourceの部分を全ページにしたいので、*
を駆使して記述してみた
module.exports = { async redirects() { return [ { source: '/:path(.*)', destination: '/', permanent: true, }, ] }, }
ただ、これだとトップページも含まれてしまい、リダイレクトのループが発生してしまう
なので、パスで分けて行うことにした(いいやり方がありそうだが)
module.exports = { async redirects() { return [ { source: '/about/:path(.*)', destination: '/', permanent: true, }, { source: '/news/:path(.*)', destination: '/', permanent: true, }, ] }, }
とりあえず、これでやりたいことができた