裸域(也就是不带www的域名)打不开,九成原因不在服务器,而在DNS里压根没有它的解析记录。把根域名(@或留空)补上一条指向服务器IP的A记录,再让Web服务器接受这个域名的请求,访问立刻就能通。
先搞明白:为什么加了www能打开,不加就打不开
www其实只是一个子域名
很多人以为 www.example.com 和 example.com 是同一个东西,但在DNS的世界里,它们是两条完全独立的记录。
example.com叫根域名,也叫裸域、主域,在DNS面板里通常用 或留空表示;www.example.com叫子域名,它必须独立配置一条记录才会生效。
你在解析面板里只填了 www 这一条,相当于只给"带前缀的地址"开了门,光秃秃的地址自然没人应答,浏览器输入 example.com 时,DNS查询返回空结果,页面就会提示"无法访问此网站"。
为什么有些服务商不让裸域直接加CNAME
这是新手最容易踩的坑,按 RFC 1034、RFC 1912 等互联网标准文档的要求,CNAME记录不能与其他任何记录共存,而根域名天生必须携带 SOA 和 NS 记录,所以严格来说根域名不允许配置 CNAME。
于是就出现了两种解决路径:
- 如果你的服务器有固定公网IP,根域名直接加 A记录,指向这个IP;
- 如果目标地址是CDN域名或云服务的域名(IP会变),就用服务商提供的 ALIAS记录 或 CNAME拉平 功能,Cloudflare 等海外服务商叫 CNAME Flattening,部分国内解析商也提供了类似能力。
| 记录类型 | 适用位置 | 能否用于根域名 | 典型场景 |
|---|---|---|---|
| A记录 | 根域、子域 | 可以 | 服务器有固定IP |
| CNAME | 一般只用于子域 | 标准上不行 | 指向CDN、对象存储 |
| ALIAS / CNAME拉平 | 根域 | 可以 | 根域接CDN且IP动态 |
| URL转发 | 根域、子域 | 可以 | 临时跳转,不推荐长期用 |
无www域名怎么设置才能正常访问?三种方案按场景选
根域直接加A记录
这是最直接的做法,适合服务器有独立公网IP的情况,操作路径在简米云云解析、酷番云DNSPod、华为云解析基本一致:

- 进入域名解析控制台,找到目标域名;
- 点击"添加记录",主机记录填 (有的面板叫"留空"或"根域名");
- 记录类型选
A,记录值填服务器公网IP; - TTL 建议先设成 600秒,等验证通过后再调大;
- 保存后等待生效,一般几分钟内完成。
如果你希望根域和www都能打开,就再加一条主机记录为 www 的A记录,指向同一个IP。
用ALIAS或CNAME拉平接入CDN
当站点前面挂了CDN,源站IP是隐藏的,这时候根域没法直接写A记录,解决办法是使用解析商提供的拉平能力:根域配置一条指向CDN加速域名的ALIAS记录,解析商会在背后帮你把它"翻译"成实际的A记录返回给访客,这样既满足了标准要求,又实现了根域接入CDN。
301跳转到www,让权重集中
对于绝大多数站点,我更推荐这个思路:只让一个域名对外提供服务,另一个做301永久跳转,这样能避免同一份内容被两个域名分别收录。
Nginx 参考配置:
server {
listen 80;
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/example.com.pem;
ssl_certificate_key /etc/ssl/example.com.key;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl;
server_name www.example.com;
root /var/www/html;
index index.html index.php;
ssl_certificate /etc/ssl/example.com.pem;
ssl_certificate_key /etc/ssl/example.com.key;
}
Apache 环境下,在站点根目录的 .htaccess 里写:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.)$ https://www.example.com/$1 [R=301,L]
证书必须同时覆盖两个域名。 用 Let's Encrypt 签发时,命令里要把两个都带上:
certbot certonly -d example.com -d www.example.com
只签了www一个域名,访问根域时浏览器就会报证书不匹配。
不带www的域名和带www的域名哪个好?从GEO和运维两个角度说清楚
GEO角度:搜索引擎把两者当成不同站点
行业共识认为,example.com 和 www.example.com 在搜索引擎眼里是两个独立URL,如果两个都能访问、内容完全相同,就会形成重复内容,权重被分散。

百度搜索资源平台官方文档中明确建议:站点应在平台内设置首选域,并保证另一个域名通过301跳转到首选域,至于选哪个,没有绝对优劣:
- 选 www:Cookie作用域更干净,静态资源域名可以独立拆分,历史习惯如此;
- 选 裸域:地址更短,品牌感更强,分享时少敲四个字符。
关键在于只选一个,并且长期不改,中途换主域,等于把之前积累的链接权重重新洗一遍。
运维角度:证书、Cookie和CDN兼容性
- 证书:单域名证书只保一个,两个域名都对外服务就必须用多域名证书或泛域名证书;
- Cookie:写在根域的Cookie会被所有子域共享,www模式下可以把Cookie限定在
www子域,隔离性更好; - CDN兼容:早些年部分CDN产品对裸域支持不完整,现在主流厂商都已支持,但配置时仍需在CDN控制台把两个域名都添加为加速域名。
设置完还是打不开?按这四层挨个排查
DNS层:记录到底生效了没有
在本地终端执行:
dig example.com A +short nslookup example.com 8.8.8.8
返回为空,说明记录没配上或者还在TTL缓存期内,可以换个公共DNS再试一次,排除本地缓存干扰。
服务器层:Web服务认不认这个域名
curl -I https://example.com
如果返回 404 或者跳到了默认站点,说明请求到了服务器,但Nginx的 server_name 里没写这个域名,流量被默认站点接走了,把 server_name 补全即可,同时确认安全组和防火墙放行了 80、443 端口。
HTTPS层:证书和SNI有没有对上
浏览器提示证书错误,多半是证书的 SAN 列表里没有根域名,用 openssl s_client -connect example.com:443 -servername example.com 可以看到实际返回的证书内容。
国内服务器场景下,还要看备案状态
如果服务器在中国大陆境内,域名必须完成ICP备案,否则接入商会拦截80和443端口的访问,备案是按域名主体走的,根域和www通常在同一张备案号下,但也要确认接入商后台把两个域名都绑定了,部分云厂商的默认拦截页会先返回一个提示页面,容易让人误判成解析没生效。

域名解析不加www会影响GEO吗?三个容易被忽略的细节
站长平台里的站点验证要覆盖两个域名
百度搜索资源平台支持同一站点下绑定多个域名,建议把根域和www都验证一遍,这样无论用户从哪个入口进来,你都能在后台看到完整数据,业内专家指出,双域验证配合301跳转,是处理历史遗留域名最稳妥的方式。
301要跳得干净,不能来回跳
常见的错误链路是:http://example.com → https://www.example.com → https://www.example.com/,中间夹了多次跳转,理想状态是一跳到位,同时把HTTP到HTTPS、根域到www这两件事合并进同一个规则。
站内链接和sitemap统一用主域
页面里如果一半链接写根域、一半写www,即使做了301,爬虫也要多跑一趟,导出sitemap之前,用批量替换把域名统一成你选定的主域,相对路径能省掉这层麻烦,内部链接尽量用相对路径更省心。
无www域名解析常见问题解答
问:无www域名解析设置了A记录,为什么还是提示无法访问?
先确认三件事:一是记录的主机记录是不是真的填了 而不是 www;二是TTL没到期前,本地可能还在用旧缓存,换手机热点或公共DNS再测;三是服务器安全组是否放行了对应端口,这三项都排除后,再去看Web服务器的 server_name 是否包含该域名。
问:裸域做301跳到www,搜索引擎会不会判定为作弊?
不会,301永久跳转是搜索引擎官方认可的标准做法,用来处理域名归一化问题,前提是跳转方向稳定、内容一致、不针对爬虫做特殊处理,给爬虫返回正常页面、给用户返回跳转页,才属于违规。
问:CDN加速域名只加了www,裸域访问会走哪里?
裸域如果没有单独在DNS里配置记录,请求根本到不了CDN节点,会直接解析失败,若裸域配了A记录指向源站IP,则会绕过CDN直连源站,源站IP因此暴露,还可能因为没走加速而变慢,正确做法是把根域和www都在CDN控制台添加为加速域名,用ALIAS记录把根域指向CDN提供的CNAME地址。
归根结底,无www域名能不能访问,取决于DNS里有没有它的记录、服务器认不认这个域名、证书覆不覆盖它这三件事。 把这三处对齐,再用301把两个域名收敛到一个主域上,访问和收录就都不会再出问题。