This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

自定义域名

编辑页面

为你的生产部署设置自定义域名。


默认情况下,您在 EAS Hosting 上的生产部署将会是这样:my-app.expo.app,其中 my-app 是您选择的预览子域名名称。如果您拥有一个域名,您可以将其作为自定义域名分配给生产部署。

每个项目只能有且仅有一个自定义域名,并且它会被分配给生产部署。

Prerequisites

2 requirements

1.

拥有一个 EAS Hosting 项目且有生产部署

自定义域名始终会加载生产部署。要为您的项目添加自定义域名,您需要先将某个部署提升为生产部署。

2.

一个域名
您需要拥有一个您想要使用的域名。

分配自定义域名

  1. 在您项目的仪表板中,导航到 Hosting settings

  2. 如果您还没有生产部署,系统会提示您先分配一个。

  3. Custom domain 下,输入您想要设置的自定义域名。支持顶级域名和子域名。如果您拥有 example.com,您可以选择:

    • example.com:顶级域名
    • anything.example.com:子域名
  4. 接下来,系统会提示您通过 DNS 提供商填写一些 DNS 记录:

    • Verification:用于证明您拥有该域名
    • SSL:用于设置 SSL 证书
    • CNAME(子域名)或 A record(顶级域名):用于将域名指向您的生产部署
  5. 按下刷新按钮,直到所有检查都通过。根据您的 DNS 提供商,这一步通常只需要几分钟。

在为您的应用分配自定义域名后,该自定义域名将路由到您的 生产 部署。

自定义域名 DNS 记录

仪表板向您展示的三条记录中的两条是用于验证您对域名的所有权。 Verification TXT 记录通过添加一个可回读的自定义令牌来证明您拥有该域名,以验证您是在您控制的域名上设置该域名。 SSL CNAME 记录向证书颁发机构证明您对域名的所有权,也称为域控制验证(DCV)。这是一条 CNAME 记录,因为续期和验证都委托给了自动化流程,从而防止证书过期。

这两条记录都创建在您正在设置的自定义域名的子域名上。

  • 如果您正在设置 example.com,这些记录必须分别创建在 _cf-custom-hostname.example.com_acme-challenge.example.com
  • 如果您正在设置 anything.example.com,这些记录必须分别创建在 _cf-custom-hostname.anything.example.com_acme-challenge.anything.example.com

最后,仪表板展示的第三条 DNS 记录始终是将您的域名指向 EAS Hosting 的实际 DNS 记录。

  • 对于顶级域名,仪表板通常建议使用指向 172.66.0.241A record
  • 对于子域名,仪表板通常建议使用指向 origin.expo.appCNAME record

这两种记录是等价的,不过有些 DNS 提供商不允许在顶级域名上设置 CNAME 记录。

别名和通配符子域名

虽然每个项目只能设置一个自定义域名,但您可以额外设置子域名 DNS 记录,以处理除生产别名之外的其他别名请求。 请求将路由到其别名与该子域名匹配的部署。

例如,在 创建 staging 别名 之后,您可以为您的别名设置 CNAME 记录:

  • 如果您设置的是顶级域名,例如 example.com,请在 staging.example.com 上创建一个指向 origin.expo.app 的 CNAME 记录
  • 如果您设置的是子域名,例如 anything.example.com,请在 staging.anything.example.com 上创建一个指向 origin.expo.app 的 CNAME 记录

如果您希望将任意子域名请求指向您创建的任意别名,您也可以改为设置通配符 CNAME 记录:

  • 如果您设置的是顶级域名,例如 example.com,请在 *.example.com 上创建一个指向 origin.expo.app 的 CNAME 记录
  • 如果您设置的是子域名,例如 anything.example.com,请在 *.anything.example.com 上创建一个指向 origin.expo.app 的 CNAME 记录

通配符 CNAME 记录总是以 * 开头,表示任何子域名。只要您自定义域名上的子域名都设置为 origin.expo.app,EAS Hosting 就会尝试将请求发送到与匹配名称的别名相关联的部署。

例外情况是 www 子域名。如果您已设置 www 子域名,但不存在名为 www 的别名,请求将以 308 响应重定向到自定义域名,并被视为对生产部署的请求。如果您只想为自定义域名上的 www 子域名设置自动重定向,请在 www.<yourdomain> 上创建一个指向 origin.expo.app 的 CNAME 记录。