前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网站升级HTTPS后第三方评论系统的兼容

网站升级HTTPS后第三方评论系统的兼容

作者头像
imba久期
发布2022-09-23 20:41:16
2040
发布2022-09-23 20:41:16
举报
文章被收录于专栏:imba久期的杂货铺

分享个网站升级HTTPS后遇到的问题,之前用的服务器不能升级HTTPS,虽然申请了证书但一直没用上,好歹证书是免费的那种,所以就暂时放一边了。 前几天突然想试试这个服务器能不能上HTTPS,在后台直接开启了发现完全没问题。

但突然想到我是用的第三方评论系统(来必力),一般来说第三方评论系统是对文章链接进行获取,然后以此为唯一标识区分每个文章下面的评论的。开始我以为不会有问题,因为只是协议部分变化,谁成想这个第三方评论取的是整个URL,包括协议部分的HTTPS。开始我是这么认为的,因为升级了HTTPS后以前的评论就没了。

但代码是这样的:

代码语言:javascript
复制
<!-- 来必力City版安装代码 -->
<div id="lv-container" data-id="city" data-uid="*************">
<script type="text/javascript">
// 这部分就是获取链接的代码 👇
var refer = "<?=get_permalink($id);?>".replace("http://","");
   (function(d, s) {
       var j, e = d.getElementsByTagName(s)[0];

       if (typeof LivereTower === 'function') { return; }

       j = d.createElement(s);
       j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
       j.async = true;

       e.parentNode.insertBefore(j, e);
   })(document, 'script');
</script>
<noscript>为正常使用来必力评论功能请激活JavaScript</noscript>
</div>
<!-- City版安装代码已完成 -->

大致看了一下发现,原来不是我想的取整个URL,而是获取URL后把“http://”部分删掉,再作为唯一标识使用,这样以来就好说了,因为replace这个函数可以用正则表达式,如果想让这个第三方评论系统兼容httphttps,非常简单。

只要把那句代码改成下面这样:

代码语言:javascript
复制
var refer = "<?=get_permalink($id);?>".replace(/https?:\/\//,"");

在正则表达式的意思就是,匹配“https://”这个字符串,而“s”后面的“?”代表“s”字段可以是0或1个。也就是说“http://”和“https://”都可以匹配到,然后将其替换为空(也就是删除),再作为唯一标识。

唯一标识跟之前一样,那自然评论就显示出来了。就这样解决了一个非常简单的问题,愉快的水了一篇非技术文章,233。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 imba久期 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档