要让域名自动加上 www,本质上是实现从裸域名(如 example.com)到带 www 域名(如 www.example.com)的301永久重定向。这一过程不能通过纯DNS解析完成,因为DNS只能将域名解析为IP或指定别名,无法改变用户在浏览器中输入的地址;必须由Web服务器或CDN节点返回重定向响应。

最常见的实现方式是在Nginx中配置server块。监听80和443端口,对裸域名返回301重定向到www开头的地址。示例配置为:server { listen 80; listen 443 ssl; server_name example.com; return 301 https://www.example.com$request_uri; }。该配置确保所有访问裸域名的请求,包括路径和查询参数,都完整保留并跳转到带www的URL。若已部署SSL证书,需要在443端口同时配置证书路径,否则浏览器会提示不安全。
如果使用Apache,可以通过.htaccess文件或VirtualHost配置实现。在网站根目录的.htaccess中开启mod_rewrite模块后,添加规则:RewriteEngine On。该规则会捕获裸域名的所有请求,并将其永久重定向到带www的地址,且保留原始路径。
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
对于使用CDN或云负载均衡的站点,可在CDN控制台配置HTTP重定向规则,或者通过边缘函数实现。部分云服务商提供“强制HTTPS”和“裸域名重定向”开关,可直接将裸域名重定向到www域名,无需修改源站服务器。
需要注意的是,DNS层面可以为一个主机名添加CNAME记录,但CNAME无法将用户输入的裸域名自动重写为带www的域名。若希望将www作为唯一规范域名(即canonical domain),除了配置重定向,还应在网站设置中固定使用带www的绝对链接,并确保SSL证书同时覆盖裸域名和www域名,例如使用通配符证书或多域名证书。
实施301重定向而非302临时重定向至关重要,因为301会告知搜索引擎该跳转是永久性的,有助于将裸域名的权重合并到带www的域名上,避免重复内容问题。配置完成后,建议使用浏览器清除缓存或使用curl测试:curl -I http://example.com,收到HTTP/1.1 301状态码以及Location头指向www域名,即表示配置生效。
如果用户目标是让www自动加到所有访问域名上,也可以反向操作:将带www的请求重定向到裸域名。但根据问题描述,核心是自动加www,因此上述所有方法均围绕裸域名→www域名的跳转。在实施过程中,注意避免重定向死循环,并确保服务器防火墙或安全组放行相应端口。

查看详情

查看详情