分享个本站升级HTTPS后遇到的问题,之前用的服务器不能升级HTTPS,虽然申请了证书但一直没用上,好歹证书是免费的那种,所以就暂时放一边了。
前几天突然想试试这个服务器能不能上HTTPS,在后台直接开启了发现完全没问题。
但突然想到我是用的第三方评论系统(来必力),一般来说第三方评论系统是对文章链接进行获取,然后以此为唯一标识区分每个文章下面的评论的。开始我以为不会有问题,因为只是协议部分变化,谁成想这个第三方评论取的是整个URL,包括协议部分的HTTPS。开始我是这么认为的,因为升级了HTTPS后以前的评论就没了。
但代码是这样的:
1 | <!-- 来必力City版安装代码 --> |
大致看了一下发现,原来不是我想的取整个URL,而是获取URL后把“http://”部分删掉,再作为唯一标识使用,这样以来就好说了,因为replace这个函数可以用正则表达式,如果想让这个第三方评论系统兼容http和https,非常简单。
只要把那句代码改成下面这样:
1 | var refer = "<?=get_permalink($id);?>".replace(/https?:\/\//,""); |
在正则表达式的意思就是,匹配“https://”这个字符串,而“s”后面的“**?”代表“s”字段可以是0或1个。也就是说“http://”和“https://**”都可以匹配到,然后将其替换为空(也就是删除),再作为唯一标识。
唯一标识跟之前一样,那自然评论就显示出来了。就这样解决了一个非常简单的问题,愉快的水了一篇非技术文章,233。