利用Github pages 做重定向背景:
由于在一台服务器上有个多站点服务,并且各站点服务是以域名区分的。在域名注册商使用CNAME解析时,发现CNAME仅能做到解析到CNAME的目标域名的ip地址,并不能做域名的重定向,这样的话,以域名区分服务的站点配置下依然没法正常访问想要CNAME的网站服务。
解决办法:
利用Github pages做页面重定向,从而实现到”服务的CNAME”,具体做法如下:
1.在Github上新建一个项目,添加一个简单的名为index.html的html文件。
2.根据Github的自定义项目”custom domain”的的说明文档配置访问解析,例如我想在访问 http://www.nslover.com.cn 时重定向访问 http://nslover.com.cn 的服务时,先在项目的settings中开启自定义域名”www.nslover.com.cn”的设置,然后添加域名解析CNAME记录的”www”主机记录到GitHub的”nslover.github.io”(如果是主域名使用A记录,如果是子域名使用CNAME)。详见 https://help.github.com/en/github/working-with-github-pages/configuring-a-custom-domain-for-your-github-pages-site .
3.编辑index.html,使用html和js双保险的方式做页面重定向,例如我想在访问 http://www.nslover.com.cn 时重定向访问 http://nslover.com.cn 的服务时,在index.html中修改添加如下代码:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <!-- 注释原html meta标签设置 --> <!--<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> --> <!-- 使用html meta标签重定向 --> <meta http-equiv="refresh" content="0; url=http://nslover.com.cn/"/> ... <script type="text/javascript"> window.location.href = "http://nslover.com.cn" //使用js重定向 </script> </head> ...
待解析生效后,借用这个机制就可以实现服务的重定向了。