每天进步一点点:解决cutehive.com www前缀访问、SSL证书的问题、转发的问题
昨天仓猝地上线了https://cutehive.com,但是发现了很多小问题,@deanliu 帮我指出了一些旧链接的问题,
@someguy123 帮我指出了SEO优化的问题 以及www 前缀访问的问题。
(图源 :pixabay)
链接问题我知道导致问题的原因以及如何处理,所以当时就改正了;SEO的问题嘛,因为这个站点基本上应该就是HIVE的用户使用,所以并不着急优化;但是www访问给我自己也带来一些麻烦,所以这个必须及时处理。
www 访问
我们知道网站一般会有一个域名,比如我这个cutehive.com,但是大多数网站都可以同时通过类似www.cutehive.com的方式来访问,要实现这样的效果,要解决两个问题:
- 域名解析的问题
- 网站和www子域名绑定的问题
域名解析
域名解析的问题很简单,只要创建一条CNAME记录就可以了,比如我这个域名:
改好并生效后用的EzDig软件查询,就会查到类似如下效果:
其中第二条记录就是我添加的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证书:
因为已经有了cutehive.com的证书,它会提示我是否扩展:
扩展完成后,有一步是把所有HTTP访问,重定向到HTTPS上:
因为之前已经存在转发设置,所以会提示: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链接啦.
相关链接
Leave 每天进步一点点:解决cutehive.com www前缀访问、SSL证书的问题、转发的问题 to:
Read more #cn posts
Best Posts From oflyhigh
We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.