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

in cn •  4 years ago  (edited)

昨天仓猝地上线了https://cutehive.com,但是发现了很多小问题,@deanliu 帮我指出了一些旧链接的问题,@someguy123 帮我指出了SEO优化的问题 以及www 前缀访问的问题。

image.png
(图源 :pixabay)

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

www 访问

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

  • 域名解析的问题
  • 网站和www子域名绑定的问题

域名解析

域名解析的问题很简单,只要创建一条CNAME记录就可以了,比如我这个域名:

image.png

改好并生效后用的EzDig软件查询,就会查到类似如下效果:

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

因为已经有了cutehive.com的证书,它会提示我是否扩展:

image.png

扩展完成后,有一步是把所有HTTP访问,重定向到HTTPS上:

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链接啦.

相关链接

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!