前几个月,Coding的Pages服务已经支持了https访问,据我观察使用的是Let’s Encrypt的证书。但在使用过程中发现,需要自己加上https前缀,否则还是使用http访问的,无法自动跳转。咨询过Coding官方也表示暂不支持这个功能。如何才能够在不加https前缀的情况下也能跳转到https的页面呢?用小一段JavaScript代码就可以实现。

1
2
3
4
5
6
var targetProtocol = "https:";
var testUrl = 'http://0.0.0.0:4000/';
if (window.location.protocol != targetProtocol && window.location.href != testUrl) {
window.location.href = targetProtocol +
window.location.href.substring(window.location.protocol.length);
}

我的博客的主题使用的是Jade模板,修改成Jade版本:

1
script(type='text/javascript').
      var targetProtocol = "https:";
      var testUrl = 'http://0.0.0.0:4000/';
      if (window.location.protocol != targetProtocol && window.location.href != testUrl) {
          window.location.href = targetProtocol +
          window.location.href.substring(window.location.protocol.length);
      }

把上面的JavaScript代码或者Jade代码,也可以是其他类型的模板的版本加入到你的网站的合适的位置,就可以实现这个效果了。
现在在浏览器地址栏输入lijf.me也能自动访问 https://lijf.me 了,看到那个小绿锁的心情是不是非常愉悦呢~

2017/2/17 APPEND:
Coding Pages服务已支持开启强制HTTPS访问