如何在GoDaddy DNS设置中实现www到非www的HTTPS全量重定向?
在GoDaddy DNS中实现www到非www HTTPS的强制跳转
我经常碰到开发者在GoDaddy上遇到这个问题——单纯设置域名转发后,HTTP的www请求能跳转到非www,但HTTPS的就不行。这是因为默认的转发配置只处理HTTP流量,得调整一下设置,再配合必要的补充配置,才能覆盖所有场景。
下面是一步步的解决方案:
1. 确保主域名的HTTPS正常工作
首先得确认你的https://example.com已经能正常访问,并且有有效的SSL证书(不管是GoDaddy提供的还是Let's Encrypt这类免费证书)。如果主域名本身HTTPS都有问题,跳转过去也会触发浏览器安全提示,这一步是基础。
2. 配置GoDaddy的HTTPS转发(核心步骤)
GoDaddy的转发功能其实支持HTTPS,但默认没开启,你需要手动配置:
- 登录GoDaddy账户,进入你的域名管理面板,找到「转发」选项卡。
- 点击「添加转发」,在「源」字段填写
www.example.com,「目标」字段填写https://example.com。 - 转发类型选择永久(301)——这个对SEO更友好,告诉搜索引擎这是永久跳转。
- 点击「高级设置」,这里一定要勾选「转发HTTPS」选项,同时确保「更新我的DNS设置」处于勾选状态(GoDaddy会自动帮你配置对应的CNAME记录,避免手动设置出错)。
- 保存设置后,等待DNS生效(通常15分钟到2小时不等,取决于DNS缓存)。
3. 服务器端配置重写规则(双重保险)
有时候GoDaddy的转发可能存在延迟,或者某些边缘场景覆盖不到,这时候在你的服务器上配置重写规则可以作为补充:
如果你用Nginx:
在你的站点配置文件中添加如下server块:
server { listen 80; listen 443 ssl; server_name www.example.com; # 这里填写www子域名的SSL证书路径(如果有的话) ssl_certificate /path/to/your/www-cert.pem; ssl_certificate_key /path/to/your/www-key.pem; # 永久跳转到非www的HTTPS地址,保留原请求路径 return 301 https://example.com$request_uri; }
重启Nginx让配置生效。
如果你用Apache:
在站点的.htaccess文件中添加以下规则:
RewriteEngine On # 匹配所有www开头的请求 RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] # 永久跳转到非www的HTTPS地址,保留原请求路径 RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
为什么之前的转发只对HTTP生效?
GoDaddy默认的简单转发只处理80端口的HTTP流量,443端口的HTTPS请求需要明确开启「转发HTTPS」选项。另外,如果www子域名没有对应的SSL证书,浏览器会直接拦截HTTPS请求,导致跳转失效——所以要么让GoDaddy的转发服务处理HTTPS(他们会提供中转证书),要么给www子域名也配置独立的SSL证书。
内容的提问来源于stack exchange,提问作者haemse
相关产品推荐
相关产品推荐

