禁止其他网站使用GO跳转页面失效的解决过程

 2018-10-12 07:09:26  135 人阅读  26 条评论

前几天将 boke112 导航的外链(投稿文章链接除外)和评论者链接都变成了内链,并增加了一个GO 跳转页面,详见『关于将 boke112 导航外链改为内链的公告』。刚开始没有发现问题,直到前天才偶然发现以前的旧文章中的外链点击之后总是有问题,被误判为非本站使用 GO 跳转页面从而被重定向到指定页面。换句话就是说外链跳转失效了。

禁止其他网站使用GO跳转页面失效的解决过程 海纳百川 第1张

遇到这个问题确实很无解,最关键就是只有某些外链出现这种被误判的情况,其他外链,特别是评论者链接都没有问题,所以那个时候折腾了很久,也百度、谷歌了很久,还是一头雾水,毫无头绪。后来还在boke112 导航交流群(415623933)提出这个问题,想看看有没有其他博主站长遇到过,或有什么有效的解决办法,可惜石沉大海毫无动静。可能大家都不太热衷于讨论问题,大多都比较喜欢闲聊吧。

当初自己就在想会不会是因为 boke112 导航使用了CDN导致误判出现?就好比使用 CDN 后,一些用户的 IP 都不是真实的 IP一样?根据这个思路百度、谷歌了半天也还是毫无收获。那个时候感觉自己钻了牛角尖,总是去寻找 CDN 后如何获取真实来源的页面地址,可惜最终找到的都是获取真实 IP 的相关文章。那时候还在想,是不是应该把 GO 跳转页面中的关于判断是否为自己站点使用跳转页面的代码改为判断 IP 地址?可惜技术有限就没有去尝试。最后只能先行删除 GO 跳转页面中关于“禁止其他网站使用我们的跳转页面”的相关代码来临时解决问题。

老实说,问题得不到解决连睡觉都不安稳,吃饭也不香,这个不知道是不是所有草根站长的通病?反正我就是这样,问题解决不了总是觉得心里有什么东西堵住一样。所以在前天晚上和昨天有空的时候一直在思考如何解决这个问题,也到谷歌去查找了很久,可惜还是没有进展。最后想到向某大神求助,可惜大神们都是比较忙的, QQ 留言也一直都没有得到回应,可能大神都很少登录 QQ 吧。

禁止其他网站使用GO跳转页面失效的解决过程 海纳百川 第2张

既然其他途径都无法凑效,只能再次反复仔细研究“禁止其他网站使用我们的跳转页面”的相关代码,然后重点搜索“referrer”来查找解决办法。当初的我总以为是因为使用了 CDN 导致获得的“referrer”不真实所致,所以一直都未能找到真正的解决办法,原来是自己方向搞错了,这也再一次说明“方向比努力更重要”,因为方向不对的话,再努力也是一事无成。

后来在 CSDN 博客看到『详谈 javascript 中 document.referrer 的兼容性』这篇文章中关于“大部分浏览器都获取不到来源”的办法,具体如下:

  • 方法一:<meta name="referrer" content="never"> 和 widnow.open();
  • 方法二:a 标签中的 rel=”noreferrer”

并根据这两个办法来自检外链跳转失效的页面,没想到真的找到了问题所在。原来 boke112 导航外链跳转失效的链接都含有 noreferrer 标签,而这个标签就是 WordPress 默认文章编辑器 TinyMCE自动添加的。noreferrer 标签的作用就是在单击链接时隐藏引用者信息,换句话就是说点击有这个 noreferrer 标签的链接,GO 跳转页面都无法通过 document.referrer 来正确判断,都会默认为非 boke112 导航使用。而为什么后面的文章都没有这个误判的问题呢,这是因为 TinyMCE 后期升级之后改版了,只强制给链接插入 noopener 标签,已经不会强制插入“noopener noreferrer”标签了。

禁止其他网站使用GO跳转页面失效的解决过程 海纳百川 第3张

既然弄清楚了问题的来龙去脉,那么解决起来就很简单了,只需要登录我们的数据库,通过 SQL 语句把以前的旧文章中的链接去掉 noreferrer 标签即可。比如可以通过以下 SQL 语句解决:

UPDATE wp_posts SET post_content = replace(post_content,'noopener noreferrer','noopener');
PS:因为以前的旧文章中的链接在发布文章时会被 TinyMCE 强制添加“noopener noreferrer”标签,所以我们只需要替换为“noopener”标签即可。至于 noopener 和 noreferrer 之间的区别可以参考『nofollow、noopener 和 noreferrer 标签的区别?』。

至此,终于把禁止其他网站使用 GO 跳转页面失效的问题解决了,而我也可以松一口气放松一下了。老实说,遇到问题、解决问题这个过程应该是很多博主站长们都会遇到的,而成功把问题解决之后的成就感应该还是蛮不错的,而且折腾之后,或多或少都能够学习到一些东西,这两点应该就是大家都喜欢折腾的重要原因。所以说,大家在折腾独立博客的时候,遇到问题的时候都应该多学习、多折腾、多搜索,这样才能有所进步。

历史上的今天:

本文地址:https://boke112.com/5896.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归  所有,欢迎分享本文,转载请保留出处!

相关文章 分类热门分类热评最新问答

阿里云双12嘉年华云服务器优惠价:1核1G100%CPU仅售277元/年,1核1G100%CPU仅售708元/3年,2核4G100%CPU仅售2160元/3年,1核2G10%CPU仅售825元/3年。

 发表评论

中国赞表情摊手表情吃瓜表情笑哭表情偷笑表情衰表情汗表情思考表情费解表情抓狂表情晕表情流泪表情疑问表情嘻嘻表情吃惊表情鼓掌表情

  1. 野人班的分享
    野人班的分享 @回复

    说了那么多,我是看出来了,还是得靠自己!哈哈!确实,就自己而言,没解决的问题,就像块石头压在胸口,总想把他解决了,解决了就没有了

  2. 唯心寒辞
    唯心寒辞 @回复

    学习了,可能我转到wordpress的时候默认文章编辑器已经升级了,没遇到这种情况。

    • 懿古今
      懿古今2018-10-14 22:09  回复

      @唯心寒辞这个是17年初的时候,后面升级之后就没有自动添加那个标签,然后就不会遇到这种失效的情况

  3. 闲鱼
    闲鱼 @回复

    和 widnow.open();
    这个我有用到,为了屏蔽限制,不过古大佬说的这个遇到的太少了,一时半会真想不到

    • 懿古今
      懿古今2018-10-14 22:09  回复

      @闲鱼遇到这个的概率一般比较小,除非刚好访问到添加有这个标签的文章外链

  4. 顾敏锋博客
    顾敏锋博客 @回复

    一看到技术文章我就头昏,眼花,心跳加速,博主,我这是得了啥病

  5. 杰新博客
    杰新博客 @回复

    嗯 这个可以 [中国赞]

  6. WoAiWu福利吧
    WoAiWu福利吧 @回复

    学习了
    我正在研究

  7. 土蜂蜜网
    土蜂蜜网 @回复

    这个可以好好学习

  8. 前端氪
    前端氪 @回复

    我的也出现过,学习了 [中国赞]

  9. 大学生博客
    大学生博客 @回复

    暂时还没遇到这种情况,先学习一下。

  10. 蝈蝈要安静
    蝈蝈要安静 @回复

    好久没来了,来大佬网站围观学习下 [吃瓜]

  11. 李学江博客
    李学江博客 @回复

    为什么在你网站留言,提交不用加载,而我们的网站提交留言要加载一段时间,请问下怎么做到的

  12. 李学江博客
    李学江博客 @回复

    原来如此,一直出错!

  13. 区块链
    区块链 @回复

    [吃瓜] 来围观一下看看。

  14. 明月清风
    明月清风 @回复

    学习基础知识。

  15. 火星五号趣闻
    火星五号趣闻 @回复

    这个真不懂,学习学习

  16. 靠谱学生兼职网
    靠谱学生兼职网 @回复

    现在是直接能跳转到大家的博客了

  17. 小兽wordpress
    小兽wordpress @回复

    学习基础知识。

  18. Action
    Action @回复

    学习一下。

  19. 黑鸟博客
    黑鸟博客 @回复

    又 get 新姿势 [鼓掌] ..