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

Next.js使用時にrecoil-persistのStorageを変更する

クライアント側で実行された場合のみstorageを指定するようにした

Next.jsで環境に応じて特定のページを非表示にする

NODE_ENVでredirectsを出し分けた

Next.js + typescriptでpathsのエイリアスがModule not foundになる

next.config.jsに追記する必要があった

Next.js + Algoliaで全文検索UIを実装する

react-instantsearchを利用

Next Link使用時にlazysizesでの画像更新ができない場合の対応方法

lazysizes attribute changeという公式プラグインを使う