in 折腾博客 (1203℃)

emmmm...这些都是之前的文章忘了发 现在一股脑都给发出来吧 在发文章的前几个礼拜 我看到了https://zhangzifan.com/wordpress-mip.html,经过与博主的交流之后 探索出了一种不改变文章URL,实现MIP的适配,且原H5页不受影响的方法
他的方法是通过插件辨别访客UA 如果是正常访问就返回正常的主题 如果是百度移动蜘蛛访问就返回MIP的主题 但这里是Typecho啊 用不到插件其实就可以做到这些事情的 于是开始研究...

得到MIP相关的UA

下面的是百度官方给出的移动搜索的UA

Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

但...当MIP请求缓存的时候所使用的UA是没有直接给出来的 于是我安了一个访客统计插件 直接把MIP缓存程序的UA给抓了出来 UA如下

Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; baidumib;mip; https://www.mipengine.org)

有了这两个 实现起来就方便多了

实现方法

我们都知道Typecho是基于php的 在主题里直接写php的话也会认的 根据这两个UA判断 得到下面的几行

<?php $ua=$_SERVER['HTTP_USER_AGENT'];$ua=strtolower($ua);if($ua!="" && strpos($ua,"baiduspider") && strpos($ua,"android") || strpos($ua,"baidumib")){ ?>
<!--此处为MIP的东西-->
<?php }else{ ?>
<!--此处为原H5页的东西-->
<?php } ?>

那么...该怎么用呢 我先做出一个例子 然后类似的东西需要进行重复操作 当百度移动蜘蛛抓取时看到你的页面全都符合MIP规范的话 那么你就成功了

//只是个例子 不是只改完这一个就成功了
<?php $ua=$_SERVER['HTTP_USER_AGENT'];$ua=strtolower($ua);if($ua!="" && strpos($ua,"baiduspider") && strpos($ua,"android") || strpos($ua,"baidumib")){ ?>
<html mip>
<?php }else{ ?>
<html lang="zh-CN">
<?php } ?>

就像上面这样 把不符合MIP规范的内容用这个框起来然后改好 然后别忘了canonical标签的引入
这个过程需要很长的时间 在调试过程中你可以安个Chrome插件User-Agent Switcher 调试过程中来回切换UA 会方便许多
全部改完之后...享受你的MIP页面吧~

我为什么没有用这个方案

群里的Fung大哥说如果搜索引擎展现的内容和实际访问的内容不一样的话容易被K站 并且我这里有更好的加速方案——pjax,我这里仅仅是一个小博客 从搜索引擎入口进来的也不是很多 一大串子适配代码看着也比较乱 所以就没有用这个方案 熊掌号那边也退了 绑定的百家号抢我主站权重都比我主站权重高了 并且一篇文章也不收录 被手表机芯这个竞价关键词抢权重不说还要被自己的百家号抢权重...于是怒改博客名——机芯笔记 这样就会好很多了吧

 |   | 

相关标签:#typecho #MIP

许可协议: 署名-相同方式共享 4.0 国际 转载请保留原文链接及作者