Next.jsで動的URLをRewriteする

公開日時

ブログをNext.jsに移管する際に、タグ一覧のURLを /tags/:slug => /tags/:slug/posts に変更した。

新規アクセスの場合は新しいURLで問題ないが検索エンジンにインデックスされているデータは旧URLなので、そのままだと404ページになってしまう。

そこでnext.config.jsにRewrites設定を追加。

// next.config.js
const nextConfig = {
  async rewrites() {
    return [
      {
        source: '/tags/:slug',
        destination: '/tags/:slug/posts',
      }
    ]
  },
}

module.exports = nextConfig

これで /tags/:slug にアクセスした場合も /tags/:slug/posts が表示されるようになった。

metaタグのcanonicalには新URLが指定してあるので、検索エンジンに新URLがインデックスされるようになったらRewrite設定を削除する予定。

参考


Related #next.js

SharedArrayBuffer updates in Android Chrome 88 and Desktop Chrome 92

クロスオリジン分離対応を実施

react-hook-formとReact Datepickerを組み合わせる

Hook FormのControllerを使う

Next.jsで生成したサイトで特定のページのみnoindexを設定する

タグに紐づく記事一覧ページはnoindexにした

Next.jsでAdsenseタグを埋め込んだら Only one AdSense head tag supported per page エラーが発生

Only one AdSense head tag supported per page. The second tag is ignored.