AWS Route 53 と CloudFront を使用して yoursite.com/docs のようなカスタムサブパスでドキュメントをホストするには、DNS プロバイダーの設定で CloudFront ディストリビューションを参照するように構成する必要があります。

リポジトリ構成

ドキュメントファイルは、選択したサブパス構成に合わせてリポジトリ内で整理する必要があります。たとえば、ドキュメントを yoursite.com/docs で提供したい場合は、すべてのドキュメントファイルを収めた docs/ ディレクトリを作成します。

ハイレベルな概要

次のパスには、キャッシュポリシーをCachingDisabledに設定してトラフィックをルーティングします:
  • /.well-known/acme-challenge/* - Let’s Encrypt の証明書検証に必要
  • /.well-known/vercel/* - ドメイン検証に必要
  • /docs/* - サブパスルーティングに必要
  • /docs/ - サブパスルーティングに必要
次のパスには、キャッシュポリシーをCachingEnabledに設定してトラフィックをルーティングします:
  • /mintlify-assets/_next/static/*
  • Default (*) - ウェブサイトのランディングページ
すべての Behavior は、origin request policyAllViewerExceptHostHeader に設定する必要があります。 CloudFront "Behaviors" ページ。4つのビヘイビア:/docs/*、/docs、Default、/.well-known/*。

CloudFront ディストリビューションを作成する

  1. AWS コンソールで CloudFront に移動します。
  2. Create distribution を選択します。
「Create distribution」ボタンが強調表示された CloudFront Distributions ページ。
  1. Origin domain に [SUBDOMAIN].mintlify.dev を入力します。[SUBDOMAIN] はプロジェクト固有のサブドメインです。
Origin domain として「acme.mintlify.dev」が表示された CloudFront の「Create distribution」ページ。
  1. “Web Application Firewall (WAF)” では、セキュリティ保護を有効にします。
「Enable security protections」が選択された Web Application Firewall (WAF) のオプション。
  1. それ以外の設定はデフォルトのままで問題ありません。
  2. Create distribution を選択します。

デフォルトのオリジンを追加する

  1. ディストリビューションを作成したら、「Origins」タブに移動します。
「Origins」タブが強調表示された CloudFront ディストリビューション。
  1. メインドメインをミラーするステージングURLを特定します。これはランディングページのホスティング方法によって大きく異なります。たとえば、Mintlify のステージングURLは mintlify-landing-page.vercel.app です。
ランディングページを Webflow でホストしている場合は、Webflow のステージングURL(.webflow.io)を使用します。Vercel を使用している場合は、各プロジェクトに用意されている .vercel.app ドメインを使用します。
  1. 新しいオリジンを作成し、ステージングURLを「Origin domain」として追加します。
CloudFront の「Create origin」ページで「Origin domain」入力フィールドが強調表示されている。
この時点で、オリジンが2つあるはずです。1つは [SUBDOMAIN].mintlify.app、もう1つはステージングURLです。
CloudFront の「Origins」ページに 2 つのオリジンが表示されている: mintlify 用と mintlify-landing-page 用。

ビヘイビアの設定

CloudFront のビヘイビアはサブパスのロジックを制御します。全体として、次のロジックを構成します。
  • ユーザーがカスタムサブパスにアクセスした場合[SUBDOMAIN].mintlify.dev に遷移します。
  • ユーザーがその他のページにアクセスした場合は現在のランディングページに遷移します。
  1. CloudFront ディストリビューションの「Behaviors」タブに移動します。
CloudFront の「Behaviors」タブが強調表示されています。
  1. Create behavior ボタンをクリックし、次のビヘイビアを作成します。

/.well-known/*

Vercel のドメイン検証用パス向けにビヘイビアを作成し、Path pattern/.well-known/*Origin and origin groups をドキュメントの URL に設定します。 「Cache policy」では、検証リクエストがキャッシュされずに通過するように CachingDisabled を選択します。
CloudFront「Create behavior」ページ。Path pattern は「/.well-known/*」、Origin and origin groups はステージング URL を指しています。
.well-known/* が汎用的すぎる場合、Vercel 向けには最低限次の 2 つのビヘイビアに絞り込めます:
  • /.well-known/vercel/* - Vercel のドメイン検証に必須
  • /.well-known/acme-challenge/* - Let’s Encrypt の証明書検証に必須

カスタムサブパス

選択したサブパス(例:/docs)を Path pattern に設定し、Origin and origin groups.mintlify.dev の URL(この例では acme.mintlify.dev)に向けて behavior を作成します。
  • 「Cache policy」を CachingOptimized に設定します。
  • 「Origin request policy」を AllViewerExceptHostHeader に設定します。
  • 「Viewer Protocol Policy」を Redirect HTTP to HTTPS に設定します。
CloudFront の「Create behavior」ページで、"Path pattern" が "/docs/*"、"Origin and origin groups" が acme.mintlify.dev の URL を指している状態。

ワイルドカード付きのカスタムサブパス

選択したサブパスの後ろに /* を付けた Path pattern(例:/docs/*)と、同じ .mintlify.dev のURLを指す Origin and origin groups を指定して、1つのビヘイビアを作成します。 これらの設定は、Path pattern を除き、ベースのサブパスのビヘイビアと完全に一致させてください。
  • 「Cache policy」を CachingOptimized に設定します。
  • 「Origin request policy」を AllViewerExceptHostHeader に設定します。
  • 「Viewer protocol policy」を Redirect HTTP to HTTPS に設定します。

/mintlify-assets/_next/static/*

  • 「Cache policy」をCachingOptimizedに設定する
  • 「Origin request policy」をAllViewerExceptHostHeaderに設定する
  • 「Viewer protocol policy」をRedirect HTTP to HTTPSに設定する

Default (*)

最後に、Default (*) のビヘイビアを編集します。
「Default (*)」のビヘイビアが選択され、Edit ボタンが強調表示された CloudFront ディストリビューション。
  1. 既定のビヘイビアの Origin and origin groups をステージング環境の URL(この例では mintlify-landing-page.vercel.app)に変更します。
CloudFront の「Edit behavior」ページで「Origin and origin groups」の入力欄がハイライトされている。
  1. Save changes を選択します。

ビヘイビアの設定が正しく行われているか確認する

上記の手順に従っていれば、ビヘイビアは次のようになっているはずです:
CloudFront の「Behaviors」ページに、/docs/*、/docs、Default、/.well-known/* の4つのビヘイビアが表示されている様子。

プレビュー配信

「General」タブに移動し、Distribution domain name のURLにアクセスして、配信が正しく設定されているかをテストできます。
CloudFront「General」タブで「Distribution domain name」URLがハイライトされている様子。
すべてのページはメインのランディングページにリダイレクトされるはずですが、選択したサブパス(例:/docs)をURLに付与すると、Mintlifyのドキュメントインスタンスに移動することを確認できます。

Route53 と接続する

ここでは、CloudFront ディストリビューションの機能をプライマリドメインで利用できるようにします。
このセクションについては、AWS の公式ガイド「Configuring Amazon Route 53 to route traffic to a CloudFront distribution」も参照できます。
  1. AWS コンソールで Route53 に移動します。
  2. プライマリドメインの「Hosted zone」に移動します。
  3. Create record を選択します。
Route 53「Records」ページで「Create record」ボタンが強調表示されている
  1. Alias をオンにし、Route traffic toAlias to CloudFront distribution を選択します。
Route 53「Create record」ページで「Alias」トグルと「Route traffic to」メニューがハイライトされている
  1. Create records を選択します。
既存の A レコードがある場合は、削除が必要なことがあります。
これで、プライマリドメインの指定したサブパスでドキュメントが公開されました。
DNS を設定すると、カスタムサブドメインは通常、数分で利用可能になります。DNS の伝播には 1~4 時間かかることがあり、まれに最大で 48 時間かかる場合もあります。サブドメインがすぐに利用できない場合は、トラブルシューティングに進む前にしばらくお待ちください。