Skip to main content
若要使用 AWS Route 53 和 CloudFront 将文档托管在类似 yoursite.com/docs 这样的子路径上,你必须将 DNS(域名系统)服务提供商配置为将其解析到你的 CloudFront 分配。

概览

将流量路由到以下路径,并将缓存策略(Cache Policy)设置为 CachingDisabled
  • /.well-known/acme-challenge/* - 用于 Let’s Encrypt 证书验证
  • /.well-known/vercel/* - 用于域名验证
  • /docs/* - 用于子路径路由
  • /docs/ - 用于子路径路由
将流量路由到以下路径,并将缓存策略(Cache Policy)设置为 CachingEnabled
  • /mintlify-assets/_next/static/*
  • Default (*) - 你的网站着陆页
所有 Behaviors 都必须将 origin request policy 设置为 AllViewerExceptHostHeader

创建 CloudFront 分配

  1. 在 AWS 控制台中前往 CloudFront
  2. 选择 Create distribution
  1. 在 Origin domain 中输入 [SUBDOMAIN].mintlify.dev,其中 [SUBDOMAIN] 是你项目的唯一子域。
  1. 在 “Web Application Firewall (WAF)” 中,启用安全防护。
  1. 其余设置保持默认。
  2. 选择 Create distribution

添加默认 Origin

  1. 创建分发后,前往 “Origins” 标签页。
  1. 找到与你主域名对应的预发布环境 URL。具体取决于你的落地页托管方式。例如,Mintlify 的预发布 URL 是 mintlify-landing-page.vercel.app
如果你的落地页托管在 Webflow 上,请使用 Webflow 的预发布 URL,通常为 .webflow.io如果你使用 Vercel,请使用每个项目默认提供的 .vercel.app 域名。
  1. 新建一个 Origin,并将你的预发布 URL 填入 “Origin domain”。
此时,你应当有两个 Origins:一个为 [SUBDOMAIN].mintlify.app,另一个为你的预发布 URL。

设置行为

CloudFront 中的行为用于控制子路径逻辑。总体而言,我们希望实现以下逻辑:
  • 如果用户访问你的自定义子路径,跳转到 [SUBDOMAIN].mintlify.dev
  • 如果用户访问其他任意页面,跳转到当前登录页。
  1. 打开 CloudFront 分配的 “Behaviors” 标签页。
  1. 点击 Create behavior 按钮,并创建以下行为。

/.well-known/*

为用于 Vercel 域名验证的路径创建一个 Path pattern/.well-known/* 的行为,并将 Origin and origin groups 指向你的文档站点 URL。 在 “Cache policy” 中选择 CachingDisabled,以确保这些验证请求直通且不被缓存。
如果 .well-known/* 过于宽泛,至少可以为 Vercel 将其细化为 2 个行为:
  • /.well-known/vercel/* - Vercel 域名验证所必需
  • /.well-known/acme-challenge/* - Let’s Encrypt 证书验证所必需

你的子路径

创建一个行为,将 Path pattern 设置为你选择的子路径,例如 /docs,并将 Origin and origin groups 指向 .mintlify.dev 的 URL(在我们的示例中为 acme.mintlify.dev)。
  • 将 “Cache policy” 设置为 CachingOptimized
  • 将 “Origin request policy” 设置为 AllViewerExceptHostHeader
  • 将 “Viewer Protocol Policy” 设置为 Redirect HTTP to HTTPS

带通配符的子路径

创建一个行为,在 Path pattern 中填写你选择的子路径并在后面添加 /*,例如 /docs/*,并将 Origin and origin groups 指向相同的 .mintlify.dev URL。 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 (*) 行为。
  1. 将默认行为的 Origin and origin groups 更改为预发布环境的 URL(在我们的示例中为 mintlify-landing-page.vercel.app)。
  1. 选择 保存更改

检查行为是否配置正确

如果你按前述步骤操作,行为配置应如下所示:

预览分发

你现在可以进入 “General” 标签页并访问 Distribution domain name 的 URL,来测试分发是否已正确配置。
所有页面应当指向你的主着陆页;但如果在该 URL 后追加你选择的子路径(例如 /docs),则应会跳转到你的 Mintlify 文档实例。

连接 Route 53

现在,我们将把 CloudFront 分配的功能接入到你的主域名。
本节你也可以参考 AWS 的官方指南:将 Amazon Route 53 配置为将流量路由到 CloudFront 分配
  1. 在 AWS 控制台中进入 Route53
  2. 进入主域名的“Hosted zone”。
  3. 选择 Create record
  1. 打开 Alias,然后在 Route traffic to 中选择 Alias to CloudFront distribution 选项。
  1. 选择 Create records
如果当前存在 A 记录,你可能需要将其删除。
你的文档现已通过主域名中你选择的子路径对外可用。
配置好 DNS(域名系统)后,自定义子域通常会在几分钟内生效。DNS 传播有时可能需要 1–4 小时,极少数情况下最长可达 48 小时。如果你的子域未能立即生效,请先耐心等待再进行故障排查。