每天进步一点点:解决cutehive.com www前缀访问、SSL证书的问题、转发的问题

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@oflyhigh·
0.000 HBD
每天进步一点点:解决cutehive.com www前缀访问、SSL证书的问题、转发的问题
昨天仓猝地上线了https://cutehive.com,但是发现了很多小问题,@deanliu 帮我指出了一些旧链接的问题,@someguy123 帮我指出了SEO优化的问题 以及www 前缀访问的问题。

![image.png](https://images.hive.blog/DQmeXqRS5YJFSDQ58ztLeryhT52MbvKxjvkBDU8VqHCDuhX/image.png)
(图源 :[pixabay](https://pixabay.com/))

链接问题我知道导致问题的原因以及如何处理,所以当时就改正了;SEO的问题嘛,因为这个站点基本上应该就是HIVE的用户使用,所以并不着急优化;但是www访问给我自己也带来一些麻烦,所以这个必须及时处理。

# www 访问

我们知道网站一般会有一个域名,比如我这个cutehive.com,但是大多数网站都可以同时通过类似www.cutehive.com的方式来访问,要实现这样的效果,要解决两个问题:
* 域名解析的问题
* 网站和www子域名绑定的问题

#### 域名解析

域名解析的问题很简单,只要创建一条CNAME记录就可以了,比如我这个域名:
>![image.png](https://images.hive.blog/DQmeEyCUijAGUVgiv1PqRBVKTT6UJTvTzzQTHANoyLRrXey/image.png)

改好并生效后用的EzDig软件查询,就会查到类似如下效果:
>![image.png](https://images.hive.blog/DQmasXAQkNJC2zEQt2PZzc8k1KCmBq5v2Je2cKKTZA2o3o8/image.png)


其中第二条记录就是我添加的CNAME记录,代表www.cutehive.com是cutehive.com的别名,就好比刘美女是@deanliu的别名一样。

#### 域名绑定

但是只设置别名(CNAME),子域名(www.cutehive.com)访问只会访问到IP,而不能确保访问到网站(网站是独立IP的另当别论),所以还需要将子域名和网站进行关联。

最简便的方法是使用`ServerAlias`指令,也就是Apache2的站点配置文件中除了要有`ServerName`指令,还要增加`ServerAlias`指令:
>`ServerName cutehive.com`
>`ServerAlias www.cutehive.com`

这样,我们就可以通过www.cutehive.com 访问到和cutehive.com 相同的内容了。

# SSL证书 以及转发

解决了www访问的问题,新的问题是,我之前只为cutehive.com 设置了SSL证书,如果用https://www.cutehive.com 访问,有的浏览器会禁止访问,有的浏览器会给出一个大大的安全提示,这太不友好了。

所以需要给www.cutehive.com 也装个证书,这个很简单,用如下指令即可:
>`sudo certbot --apache`

它会提示我为哪个域名开启SSL证书:
>![image.png](https://images.hive.blog/DQmZSYfiiVhwJqFHVbUgxgKiKEzyKKPKebwoyhMJAyAcy1w/image.png)


因为已经有了cutehive.com的证书,它会提示我是否扩展:
>![image.png](https://images.hive.blog/DQmVLLDCHXFpLkyHFbfUGjJvtNF1Buoj6sNkZaxc9iXBRQN/image.png)

扩展完成后,有一步是把所有HTTP访问,重定向到HTTPS上:
>![image.png](https://images.hive.blog/DQmSeTKb4UwrXi35F7LphkoxTVSecEigAUCjXhhxq4oiAJa/image.png)

因为之前已经存在转发设置,所以会提示:`Enhancement redirect was already set.`但是实际上WWW的域名并没有给成功设置转发。

解决方法很简单,删除掉站点配置文件中的转发内容,重新执行`sudo certbot --apache`就好了,设置完后,新的转发内容如下(多了第一条):
>`RewriteCond %{SERVER_NAME} =www.cutehive.com [OR]`
>`RewriteCond %{SERVER_NAME} =cutehive.com`
>`RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]`

现在访问http开头的链接, 就会自动重定向到对应https链接啦.

# 相关链接

* https://www.cutehive.com
* [cutehive.com 上线啦!](https://hive.blog/hive-105017/@oflyhigh/cutehive-com)
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,