> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# カスタムドメイン

> 独自のドメイン名をReplit発行済みアプリに接続する方法を説明します。

カスタムドメインを使用すると、`www.my-incredible-app.com`などのドメイン名をReplit発行済みアプリに割り当てることができます。
Replitは`<your-live-app-subdomain-name>.replit.app`形式の無料サブドメインを提供していますが、
カスタムドメインを使用することで、より記憶しやすいアドレスを作成できます。

カスタムドメイン名は、アプリのユーザーとのブランド認知と信頼の向上に役立ちます。

以下のビデオでカスタムドメインの設定の概要を確認できます：

<Frame>
  <iframe src="https://www.youtube.com/embed/rGYdyb58wJY" title="Custom Domains with Publishing" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />
</Frame>

## 自動セットアップでドメインを接続する

ドメインを接続する最も簡単な方法は、Replitに設定を任せることです。既に所有しているドメインをリンクすると、ReplitがDNSレコードを代わりに設定します。ドメインプロバイダーに手動でレコードをコピーする必要はありません。

<Note>
  DNSレコードは、インターネットにドメインの向き先を伝える設定です。以前は手動設定がドメイン接続の最も難しい部分でした。Replitは現在、ほとんどのドメインとプロバイダーに対してこのステップを代わりに処理します。
</Note>

<Steps>
  <Step title="Publishingツールを開く">
    アプリを発行後、<img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/deploy-icon.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=853c5ef39a8a7ac3648b3a2ce182fcb8" width="16" height="16" data-path="images/icons/deploy-icon.svg" /> **Publishing**ツールを開き、**Domains**タブを選択します。
  </Step>

  <Step title="接続したいドメインを入力する">
    **Link a domain**を選択し、`www.my-incredible-app.com`など既に所有しているドメインを入力します。
  </Step>

  <Step title="確認してReplitにDNSを設定させる">
    接続を確認すると、ReplitがDNSレコードを設定します。変更をアカウントに適用するためにドメインプロバイダーへのサインインを求められる場合があります。
  </Step>

  <Step title="ドメインの確認を待つ">
    セットアップが完了すると、ドメインに**Verified**ステータスが表示されます。通常は数分かかります。ブラウザでドメインを読み込んで動作を確認してください。
  </Step>
</Steps>

<Tip>
  自動セットアップに対応していないプロバイダーの場合や、自分でレコードを追加したい場合は、手動でドメインを接続することもできます。下の[手動でドメインを接続する](#connect-a-domain-manually)を参照してください。
</Tip>

## 機能

カスタムドメインは以下のデプロイタイプで利用できます：

* [Autoscale](/references/publishing/autoscale-deployments/)
* [Reserved VM](/references/publishing/reserved-vm-deployments/)
* [Static](/references/publishing/static-deployments/)

以下の表はReplitのサブドメインとカスタムドメインを比較しています：

| 機能                 | Replitサブドメイン | カスタムドメイン       |
| :----------------- | :----------- | :------------- |
| ホスト名のカスタマイズ        | サブドメインのみ     | 所有する任意のドメイン    |
| DNS更新時間            | 即時           | 最大48時間         |
| セキュリティ証明書（TLS/SSL） | Replitが提供    | Replitが提供      |
| 価格                 | 無料           | ドメインプロバイダーに支払い |

## 使用方法

<Accordion title="カスタムドメインへのアクセス方法">
  1. アプリを発行後、<img class="icon-svg" src="https://mintcdn.com/replit/rJldsgYVucXB_6kW/images/icons/deploy-icon.svg?fit=max&auto=format&n=rJldsgYVucXB_6kW&q=85&s=853c5ef39a8a7ac3648b3a2ce182fcb8" width="16" height="16" data-path="images/icons/deploy-icon.svg" /> **Publishing**ツールを開きます。
  2. **Domains**タブを選択します。
  3. 以下のスクリーンショットに示すように、**Link a domain**または**Manually connect from another registrar**を選択します。

  <Frame>
    <img src="https://mintcdn.com/replit/jSmYU1wBTvl8UMyc/images/deployments/custom-domains/01.png?fit=max&auto=format&n=jSmYU1wBTvl8UMyc&q=85&s=5dc58a0cab37877093e55c9a2b3b1367" alt="Domainsタブ" width="2422" height="1130" data-path="images/deployments/custom-domains/01.png" />
  </Frame>
</Accordion>

## 手動でドメインを接続する

自動セットアップに対応していないプロバイダーの場合や、自分でレコードを追加したい場合は、以下の手順に従ってカスタムドメインを手動で設定してください。

<Warning>
  以下のいずれかに該当する場合、設定上の問題が発生する可能性があります：- 異なるサーバーを指す同じドメイン名の複数の`A`レコード。- ReplitはAレコードのみをサポートしているため、同じドメインに`A`と`AAAA`レコードが共存している場合。- Replitがそのタイプのセキュリティ証明書を自動更新できないため、Cloudflareプロキシされたドメインレコード。

  * 異なるサーバーを指す同じドメイン名の複数の`A`レコード。
  * ReplitはAレコードのみをサポートしているため、同じドメインに`A`と`AAAA`レコードが共存している場合。
  * Replitがそのタイプのセキュリティ証明書を自動更新できないため、Cloudflareプロキシされたドメインレコード。
  * `replit-verify` `TXT`レコードが見つからないか削除されている場合。ReplitはSSL/TLS証明書を更新するためにこのレコードが必要です。下の[TXTレコードを維持する](#keep-the-txt-record-in-place)を参照してください。
</Warning>

<Steps>
  <Step title="カスタムドメインを追加する">
    テキストフィールドにカスタムドメイン名を入力します。登録済みドメインまたはサブドメインを含めることができます。

    例えば、`hat-tip.cc`は登録済みドメインで、`my.hat-tip.cc`にはサブドメイン`my`が含まれます。

    <Frame>
      <img src="https://mintcdn.com/replit/jSmYU1wBTvl8UMyc/images/deployments/custom-domains/02.png?fit=max&auto=format&n=jSmYU1wBTvl8UMyc&q=85&s=38485a8680fe6ae256ec2d7b0665a784" alt="DNS設定のスクリーンショット" width="1940" height="718" data-path="images/deployments/custom-domains/02.png" />
    </Frame>
  </Step>

  <Step title="ドメインレジストラにDNSレコードを追加する">
    Replitが生成するDNSレコードを**ドメインレジストラ**に提供する必要があります。
    ドメインレジストラとは、GoDaddyやNamecheapなどのドメイン名を管理するサービスです。

    ReplitからAレコードとTXTレコードの値をコピーして、ドメインレジストラのDNS管理セクションに貼り付けます。ドメインレジストラがホスト名として`@`をサポートしていない場合は、登録済みドメイン名を使用してください。

    <Warning>
      **TXTレコードを維持してください。** ReplitはDNS検証を通じてカスタムドメインのSSL/TLS証明書を発行・更新します。`replit-verify=...` `TXT`レコードは、初期セットアップ時だけでなく、ドメインの全期間を通じてDNSに残しておく必要があります。確認後にレコードを削除または変更すると、次回の証明書更新が失敗し、最終的にドメインが期限切れの証明書を提供してブラウザからアプリにアクセスできなくなります。`TXT`レコードは`A`レコードと同様に永続的なものとして扱ってください。
    </Warning>
  </Step>

  <Step title="オプション：サブドメインを追加する">
    `www`を含むサブドメインは、apex（頂点）ドメインをリンクしても自動的に解決されません。提供したい各サブドメインは、**Domains**タブに独自のエントリとして追加し、レジストラで独自のDNSレコードを設定する必要があります。

    サブドメインを追加するには、apex ドメインをリンクしたのと同じ方法で**Domains**タブからリンクし、Replitが生成するDNSレコードをドメインレジストラに追加します。
    例えば、`my-subdomain.hat-tip.cc`を追加するには：

    * **Publishing**ツールで、**Domains**タブを選択して`my-subdomain.hat-tip.cc`をリンクします。
    * レジストラで、ホスト名`my-subdomain`のポイント先をReplitが新しいエントリに示すIPアドレスに設定した新しい`A`レコードを追加します。
    * レジストラで、ホスト名`my-subdomain`に対応する`replit-verify=...` `TXT`レコードを追加します。各サブドメインにはapexとは別の独自の`TXT`レコードがあります。

    <Note>
      **`www`はサブドメインです。** `hat-tip.cc`をリンクしても、`www.hat-tip.cc`は自動的に提供されません。訪問者が`hat-tip.cc`と`www.hat-tip.cc`の両方でアプリにアクセスできるようにするには、**Domains**タブに`www.hat-tip.cc`を別のエントリとして追加し、ホスト名`www`に生成された`A`および`TXT`レコードを公開してください。`www`アドレスを希望するほとんどのビルダーは、apexから`www`（またはその逆）へのリダイレクトもレジストラで設定します。
    </Note>

    apex ドメインと同様に、各サブドメインに追加する`replit-verify=...` `TXT`レコードはDNSに永続的に残しておく必要があります。下の[TXTレコードを維持する](#keep-the-txt-record-in-place)を参照してください。
  </Step>

  <Step title="DNSの伝播が完了するまで待つ">
    レコードを追加したら、オンラインへの伝播を待つ必要があります。
    これには数分から最大48時間かかることがあります。

    伝播が完了すると、以下に示すようにDomainsタブのドメイン名の横に「Verified」ステータスが表示されます：

    <Frame>
      <img src="https://mintcdn.com/replit/jSmYU1wBTvl8UMyc/images/deployments/custom-domains/domain-verified.png?fit=max&auto=format&n=jSmYU1wBTvl8UMyc&q=85&s=fe5c99d84ff0334119d2e94b2f07c99a" alt="確認済みドメインステータスのスクリーンショット" width="1866" height="890" data-path="images/deployments/custom-domains/domain-verified.png" />
    </Frame>

    ブラウザでドメインを読み込んで、正常に動作することを確認します。
  </Step>
</Steps>

## トラブルシューティング

### TXTレコードを維持する

ReplitはDNS検証を通じて各カスタムドメインのSSL/TLS証明書を発行・更新します。この検証は、セットアップ時に追加した`replit-verify=...` `TXT`レコードに依存しています。`TXT`レコードは一時的なセットアップの成果物ではなく、ドメインの全期間を通じてDNSに残しておく必要があります。ドメインが確認された後にレコードが削除、編集、または置き換えられた場合、次回の更新は静かに失敗し、既存の証明書は最終的に期限切れになります。訪問者はブラウザのセキュリティ警告を見ることになり、アプリにアクセスできなくなります。

アカウントの古いドメインが突然証明書エラーを表示し、新しいドメインは正常に動作する場合、`TXT`レコードが見つからないか変更されていることが最も可能性の高い原因です。

影響を受けたドメインを復元するには：

1. **Publishing**ツールを開き、**Domains**タブを選択します。
2. Replitがそのドメインに表示する`replit-verify=...` `TXT`レコードを確認します。
3. ホスト名と値を含め、表示された通りに`TXT`レコードをドメインレジストラに追加し直します。
4. Replitでドメインを削除して再度追加し、新規発行をトリガーします。
5. DNSの伝播を待ち、**Domains**タブの**Verified**ステータスを再確認します。
