All posts

STEP5: 独自ドメインを接続する

wrangler.jsoncにroutesを追加して独自ドメインを接続し、wwwをapexへリダイレクトする。

対象EmDashバージョン: 1.3.1 ・ 確認日: 2026-10-27

ドメインがCloudflareのネームサーバーに向いていれば、wrangler.jsoncにroutesを追加するだけで独自ドメインに接続できる。

結論

routesに { pattern: "example.com", custom_domain: true } を追加して再デプロイすれば、そのまま独自ドメインで配信される。

  1. wrangler.jsoncにroutesを追加する

    "routes": [
      { "pattern": "example.com", "custom_domain": true },
      { "pattern": "www.example.com", "custom_domain": true }
    ]
  2. wwwをapexへリダイレクトするコードを書く

    src/worker.tsのfetchハンドラでhostnameを見て301リダイレクトする。

    async fetch(request, env, ctx) {
      const url = new URL(request.url);
      if (url.hostname === "www.example.com") {
        url.hostname = "example.com";
        return Response.redirect(url.toString(), 301);
      }
      return handler.fetch!(request, env, ctx);
    }
  3. 再デプロイして確認する

    npm run build && npx wrangler deploy

つまずきポイント

routesを追加すると、wrangler.jsoncに `workers_dev` を明示していない場合、workers.devのURLが自動的に無効化される。開発用URLを残したい場合は `"workers_dev": true` を明示的に書く。

ドメインをCloudflareに追加していないとどうなるの?

つまずきポイント

ドメインがCloudflareのネームサーバーに向いていない(Cloudflare Registrar等で未登録)場合は、routesを追加してもカスタムドメインとして認識されない。先にドメインをCloudflareのゾーンに追加しておく。

まとめ

  • routesにcustom_domain:trueを追加するだけで独自ドメインに接続できる
  • wwwからapexへのリダイレクトはworker.ts側で実装する
  • routes追加でworkers.devが無効化される点に注意し、必要ならworkers_dev:trueを明示する

Discussion

No comments yet