如何将Namecheap子域名与Netlify站点配合实现正常访问
子域名绑定Netlify站点的后续配置指导
已完成的操作
- 通过Namecheap API成功创建子域名
thisisnewtestsubdomain.thisisthemaindomain.com的DNS记录(但当前记录值指向主域名,需修正) - 通过Netlify API创建站点并指定了自定义域名
需要补充的配置步骤
1. 获取Netlify站点的默认域名
调用create_netlify_site接口成功后,返回的JSON数据中domain字段即为Netlify分配的默认站点域名(格式如your-site-name.netlify.app),需记录该值。
2. 修正Namecheap的DNS记录
你之前的代码中创建CNAME记录时,Address参数填的是主域名thisisthemaindomain.com,这会导致域名无法指向Netlify站点。需要通过API或手动更新该记录:
API方式修改(调整现有代码)
修改register_subdomain函数中的参数,将Address替换为Netlify的默认域名,同时注意使用正确的DNS记录添加命令:
def update_subdomain_dns(domain_name, subdomain, netlify_domain): sld = domain_name.split('.')[0] tld = domain_name.split('.')[1] params = { 'ApiUser': api_user, 'ApiKey': api_key, 'UserName': username, 'Command': 'namecheap.domains.dns.addHost', 'ClientIp': '', 'SLD': sld, 'TLD': tld, 'HostName': subdomain, 'RecordType': 'CNAME', 'Address': netlify_domain, 'TTL': '1800' # 设置为30分钟,加快DNS生效速度 } response = requests.get(base_url, params=params) if response.status_code == 200: if 'DomainDNSSetHostsResult IsSuccess="false"' in response.text: print("Failed to update DNS record. Error:", response.text) else: print(f"Subdomain DNS updated to point to {netlify_domain} successfully.") else: print("Failed to connect to Namecheap API.") # 使用示例 main_domain = 'thisisthemaindomain.com' new_subdomain = 'thisisnewtestsubdomain' netlify_default_domain = 'your-site-name.netlify.app' # 替换为实际获取的Netlify域名 update_subdomain_dns(main_domain, new_subdomain, netlify_default_domain)
手动修改方式
登录Namecheap后台,找到主域名的DNS管理页面:
- 找到之前创建的
thisisnewtestsubdomainCNAME记录 - 将记录值修改为Netlify的默认域名
your-site-name.netlify.app - 保存更改
3. 验证DNS生效
DNS记录更新后通常需要10-30分钟生效,可通过命令行工具验证:
nslookup thisisnewtestsubdomain.thisisthemaindomain.com
如果返回的地址包含Netlify的服务器IP,说明DNS已生效。
4. 确认Netlify域名配置并开启HTTPS
登录Netlify后台,进入对应站点的「Domain settings」页面:
- 确认自定义域名
thisisnewtestsubdomain.thisisthemaindomain.com状态显示为「Verified」 - 开启「Force HTTPS」选项,Netlify会自动签发免费的SSL证书,确保站点可通过HTTPS访问
额外说明
- 如果你选择将子域名委托给Netlify DNS(让Netlify完全管理该子域名的DNS),操作会更复杂:需要在Namecheap添加NS记录,将子域名的DNS服务器指向Netlify提供的NS地址。但仅绑定站点的需求下,修改CNAME记录的方式更简单,足够满足需求。
- 后续通过Netlify API完成文件上传部署后,直接访问子域名即可打开你的站点。
内容的提问来源于stack exchange,提问作者Axe
相关产品推荐
相关产品推荐

