You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过CloudFlare DNS将子域名解析至另一网站(不跳转)?

嘿,我来帮你搞定这个问题!

核心答案

仅靠基础DNS记录(不配合其他服务)没法直接满足需求,但结合Cloudflare的功能或者Google Cloud的自定义域名配置,完全可以实现admin.root.com指向你的App Engine管理页面且URL保持不变的效果——不需要任何用户跳转。

下面分两种可行方案详细说明:


方案1:用Cloudflare反向代理(无需在GCP配置自定义域名)

这种方式利用Cloudflare的代理功能转发流量,同时保持用户访问的URL不变:

    1. 登录Cloudflare后台,进入你的域名DNS管理界面
    1. 添加一条CNAME记录:
    • 名称:admin(对应子域名admin.root.com
    • 目标:填写你的App Engine服务的默认域名,格式是[你的GCP项目ID].uc.r.appspot.com(可以在GCP App Engine控制台的「设置」->「自定义域名」里找到这个地址)
    • 关键操作:把记录旁边的云朵图标改成橙色(启用Cloudflare代理),不要用灰色的「仅DNS解析」
    1. (可选但推荐)配置请求头转发:
      如果你的App Engine服务只接受来自自身域名的请求,需要在Cloudflare的「规则」->「转换规则」中添加一条「修改请求头」规则:
    • 匹配条件:Host等于admin.root.com
    • 操作:设置Host头为你的App Engine默认域名(比如your-project-id.uc.r.appspot.com
    1. 等待1-5分钟DNS生效,访问admin.root.com就能看到你的管理页面,URL完全保持不变。

方案2:在GCP配置自定义域名(纯DNS解析即可)

这种方式让App Engine直接识别admin.root.com作为合法域名,之后通过纯DNS解析就能实现需求:

    1. 登录GCP控制台,进入App Engine的「设置」->「自定义域名」页面
    1. 点击「添加自定义域名」,输入admin.root.com,按照提示完成域名所有权验证:
      因为你的域名托管在Cloudflare,选择「DNS验证」,GCP会给你一条TXT记录,你需要在Cloudflare的DNS管理中添加这条记录
    1. 验证通过后,GCP会给你一条CNAME记录的目标地址(类似ghs.googlehosted.com或者特定的App Engine域名)
    1. 回到Cloudflare,添加一条CNAME记录:
    • 名称:admin
    • 目标:填写GCP提供的CNAME地址
    • 云朵图标可以选灰色(仅DNS)或橙色(Cloudflare代理,额外获得CDN和安全防护)
    1. 等待DNS生效后,访问admin.root.com即可直接打开管理页面,URL无变化。

为什么纯基础DNS不行?

如果只使用灰色云朵的CNAME记录(仅DNS解析),却不在GCP配置自定义域名,用户访问admin.root.com时,浏览器会直接向App Engine的服务器发送请求,但App Engine的负载均衡器会检查请求的Host头——如果这个Host不是它已识别的域名(默认域名或已配置的自定义域名),就会返回错误页面,所以必须通过上述两种方式之一解决这个问题。

内容的提问来源于stack exchange,提问作者Edgar Derby

火山引擎 最新活动