引言
首先,我们明确一个常识——
常规情况下,我们认为主域名和 www
子域名是应该指向同一个网站的。
而我设计的网站部署,是应该有三个域名均可解析到我的博客的。
序号 | 网站域名 | 主域/子域 | 备注 |
---|---|---|---|
1 | hw13.cn | 主域 | 网站解析的主要域名 |
2 | www.hw13.cn | 子域 | 跳到主域 |
3 | blog.hw13.cn | 子域 | 跳到主域 |
起因是:博客网站是用的主域名来解析的,子域名没有解析到服务器
一般 www
前缀的域名会被认为是跟主域名一致的网站,在阿里云 SSL
免费证书申请当中,申请主域名的 SSL
证书,也会一并签发允许 www
子域名。
但是我们的域名解析(云解析 DNS
)是没有解析 www
子域的,就造成了访问会出现无法找到的情况
比如使用 cmd
自带的 ping
命令可以检测到跟 www
子域名的联通情况。
解决方案
我这里有三种解决方案:
- 使用
显式URL解析
,在域名解析阶段进行跳转 - 在服务器
Nginx
应用配置部分进行处理 - 在程序代码当中捕捉到这个请求进来的域名信息,进行代码层面的重定向
下面我们主要来讲第一种解决方案,但是要注意,显式URL转发,在阿里云只能写2条
这种方案在代码上不需要修改、服务器配置不需要额外配置,属于请求到服务器之前的一种策略,也是最简单的一种。
找到阿里云控制台的云解析DNS
可以在左侧菜单点击“云解析dns”,或者搜索输入“云解析DNS”,点开菜单
当然,也可以在 域名管理 控制台,找到“解析设置”进去,多个入口都可以的
具体的域名解析设置
找到你要处理的域名,比如,我这里是hw13.cn
点击域名右侧的“解析设置”按钮。
进入菜单后,新增解析。
点击“添加记录”按钮,在弹出窗口里进行填写:
- “显式URL解析”作为记录类型
- 主机记录填写你的子域名前缀,比如我这里是
www
- 记录值写到你要指向的主域名的地址,实际上想做的话也可以是子页面
这里的
302
代表解析时产生重定向的状态码建议这里先用
302
测试,如果确认无误,并且运行一段时间仍正常的话,就可以改成301
了ps:
301
代表永久重定向,浏览器会记住这个情况,除非用户手动清除缓存,不然以后都会重定向到这里
302
代表临时重定向,不做缓存,随时可以修改
然后我们再测试,已经可以正常访问了
三个域名都可以正常访问到我们的网站,并且只有一个主域名,更利于seo
优化(我认为)。