引言

首先,我们明确一个常识——

常规情况下,我们认为主域名和 www子域名是应该指向同一个网站的。


而我设计的网站部署,是应该有三个域名均可解析到我的博客的。

序号网站域名主域/子域备注
1hw13.cn主域网站解析的主要域名
2www.hw13.cn子域跳到主域
3blog.hw13.cn子域跳到主域

起因是:博客网站是用的主域名来解析的,子域名没有解析到服务器

一般 www前缀的域名会被认为是跟主域名一致的网站,在阿里云 SSL免费证书申请当中,申请主域名的 SSL证书,也会一并签发允许 www子域名。

但是我们的域名解析(云解析 DNS)是没有解析 www子域的,就造成了访问会出现无法找到的情况

比如使用 cmd自带的 ping命令可以检测到跟 www子域名的联通情况。

无法ping通子域名

解决方案

我这里有三种解决方案:

  1. 使用显式URL解析,在域名解析阶段进行跳转
  2. 在服务器Nginx应用配置部分进行处理
  3. 在程序代码当中捕捉到这个请求进来的域名信息,进行代码层面的重定向

下面我们主要来讲第一种解决方案,但是要注意,显式URL转发,在阿里云只能写2条

这种方案在代码上不需要修改、服务器配置不需要额外配置,属于请求到服务器之前的一种策略,也是最简单的一种。

找到阿里云控制台的云解析DNS

可以在左侧菜单点击“云解析dns”,或者搜索输入“云解析DNS”,点开菜单

云解析DNS菜单

当然,也可以在 域名管理 控制台,找到“解析设置”进去,多个入口都可以的

具体的域名解析设置

找到你要处理的域名,比如,我这里是hw13.cn

点击域名右侧的“解析设置”按钮。

进入具体域名的解析页面

进入菜单后,新增解析。

点击“添加记录”按钮,在弹出窗口里进行填写:

  1. “显式URL解析”作为记录类型
  2. 主机记录填写你的子域名前缀,比如我这里是www
  3. 记录值写到你要指向的主域名的地址,实际上想做的话也可以是子页面

填写解析信息

这里的302代表解析时产生重定向的状态码

建议这里先用302测试,如果确认无误,并且运行一段时间仍正常的话,就可以改成301

ps:

301代表永久重定向,浏览器会记住这个情况,除非用户手动清除缓存,不然以后都会重定向到这里

302代表临时重定向,不做缓存,随时可以修改

然后我们再测试,已经可以正常访问了

三个域名都可以正常访问到我们的网站,并且只有一个主域名,更利于seo优化(我认为)。


欢迎关注拓行公众号,分享各种技术博客文章

拓行——奋勇进取,开拓未来,砥砺前行

最后修改:2024 年 04 月 16 日
如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~