firebase hostingで301リダイレクト設定を行う

公開日時

先日、このブログを

Gridsome + Contentful + Firebase Hosting

から

Next.js + Contentful + Vercel

に移行した。

また、その少し前にブログのドメインも変更した。

久しぶりに旧ドメインの方のSearch Consoleを眺めていたところ、現在も検索結果に旧ドメインが表示されている記事がいくつかあったのでfirebase hosting設定で新ドメインに301リダイレクトさせることにした。

一部のpathはNext.js移行時に変更したが、Next.jsで動的URLをRewriteすることで以前のpathでもアクセスできるようにしておいたので、firebase hostingでは全pathを新ブログのURLにリダイレクトするだけで済んだ。

firebase.jsonhosting.redirects に以下を設定した。

{
  "hosting": {
    "public": "dist",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ],
    "redirects": [
      {
        "source": "/:path*",
        "destination": "https://sunday-morning.app/:path",
        "type": 301
      },
      {
        "source": "/",
        "destination": "https://sunday-morning.app/",
        "type": 301
      }
    ]
  }
}

これで旧ドメインの記事にアクセスしても新ドメインの記事が表示されるようになった。

参考


Related #firebase

YouTubeの「Firebase Release Notes」プレイリスト

最新のアップデートの概要を把握するのにちょうど良い

Nuxt.jsのservice workerで環境変数を切り替えられるようにする

設定情報をハードコードしたくなかったので、ビルド時にnodeコマンドでファイル生成を行い環境変数を切り替えられるように対応した。

CloudFunctionsを使ってFirestoreのサブコレクションを削除する

CloudFunctions内でFirebase CLIのdeleteコマンドを呼び出すことで一括削除ができる

Firebase Hostingのリリース履歴を一括削除する

いつの間にか一括削除機能が追加されていた