搜索引擎抓取Discuz手机版URL获取PC端内容
这是怎么回事呢?
可以通过HTTP状态监测工具https://www.dute.org/httpstatus,了解发生的原因
进入状态监测工具后,输入手机版网页URL地址,点击检查http状态,即可得出下方结果。
原来是URL请求发生了跳转,从手机端页面地址,跳转到了PC端URL地址,导致模拟抓取的内容显示为PC端的。
发生过程分析,Discuz系统中有个checkmobile()函数。虽然使用的手机端二级域名,但是discuz系统判断浏览器客户端不是mobile时,就执行了跳转PC端模板的操作。
点击查看 Discuz教程之如何判断手机端访问
那该如何解决呢?
小编在网上整理了一些资料 Discuz教程之使用电脑访问discuz手机版或触屏版
步骤一:
手机模板中引入了common.js文件,开头的那两行代码,罪魁祸首就是这个ontouchend,这个是只有手机才会有的事件,pc浏览器怎么也是不存在的,因此就永久跳到了标准版去了。
找到如下代码
var supporttouch = “ontouchend” in document;
!supporttouch && (window.location.href = ‘forum.php?mobile=1’);
注释掉两行代码,这样下PC端运行手机版模板时就不会检测跳转去标准版了!
步骤二:
方法一:强制将浏览器判定为移动类型(不推荐)
具体方法: 进入Checkmobile函数后,立即返回return true; 该方法将所有的访问都强制定义为了移动端,这样在PC端使用PC端链接访问内容时,也会跳转到手机版模板,这样效果不好,小编不推荐。
function checkmobile() {
global $_G;
return true;
方法二:
PC端使用PC端链接访问时,仍然会输出电脑端模板样式和内容;在手机端访问PC链接时,也会跳转到手机端模板内容。
PC端使用m二级域名访问时,则会显示手机端模板样式和内容。 使用手机端访问链接时,当然显示的仍然是手机端内容。
实现方法如下:
以上就是使用PC浏览器访问Discuz手机版内容的实现方法,也是琢磨了小半天的成果。