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