当前位置

禁止百度WEB页面到手机WAP的转码

James Qi 在 2012年6月14日 - 14:00 提交
内容摘要:很早以前见过手机上用百度时出现自动转码后的页面,在2G网络的非智能手机时代还有些用,但我个人用得不太多就没有很留意。昨天晚上家中发现很多小虫,用三星平板电脑Samsung Galaxy Tab P10......

  很早以前见过手机上用百度时出现自动转码后的页面,在2G网络的非智能手机时代还有些用,但我个人用得不太多就没有很留意。昨天晚上家中发现很多小虫,用三星平板电脑Samsung Galaxy Tab P1000查找原因和解决办法,这台Android 2.2平板电脑上预置了百度的搜索框,我进行了很多次搜索,发现百度将很多网站(包括新闻搜索中找到的新闻网站)都进行了转码,这个对于普通浏览者来说确实提供了方便,不过对于网站拥有者来说,无法展示广告、无法控制显示,成了为百度免费提供纯内容的服务商了。:-(

  前段时间,我试用“百度移动开放平台”的“移动建站管理系统”,很方便可以搭建手机网站,可以通过嵌入代码来一定程度上控制显示,不过也无法显示广告,就没有多管,后来自行添加了一些手机版网站。百度这个系统有一个后台,可以显示流量情况,我看名录集网站的(百度平台生成的)手机版手机访问量每天有50,000左右,而通过百度搜索进入我们原网站的只有1,000左右,也就是百度“拦截”了我们每天五万的流量,而浏览者继续点击“查看原网页”的比例只有2%左右,这也太坑爹了吧 :-(

  我马上把在百度移动建站管理系统中的所有站点全部删除了,但在百度的手机搜索中依然还在转码,我查看了百度提供的“转码声明”,其中说到有三个解决方案可以用于禁止转发:

A. no-transform协议
TC支持的no-transform协议为如下两种形式:
a. HTTP Response中显式声明Cache-control为no-transform。
b. meta标签中显式声明Cache-control为no-tranform,格式为:
<head>
<meta http-equiv="Cache-Control" content="no-transform " />
</head>
如第三方站点不希望页面被转码,可添加此协议,当用户进入第三方网站时,先进入中间提示页,页面将引导用户自主选择跳转至原网页。
B. handheld协议
页面通过<link>标签显式指定WAP网页,声明格式如下:
<link rel="alternate" type="application/vnd.wap.xhtml+xml" media="handheld" href="target"/>
如第三方站点不希望页面被转码,可添加此协议,告知我们原网页对应有一个WAP版页面,当用户进入第三方网站时,先进入中间提示页,让用户自主选择跳转至原网页或第三方网站自有的wap页面。
C. User-Agent相关
TC抓取页面时,使用的User-Agent为:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; baidu Transcoder;)
如第三方站点不希望转码HTML页面,且又可以提供对应的自有WAP页面,则可以根据这个User-Agent,返回自有WAP页,同时在HTTP Response显示声明:Content-Type为:vnd.wap.xhtml+xml,那么TC将不对这个页面转码,而是直接跳转至相应的自有WAP页面。

  我决定能采用的尽量采用,把以前的手机版再修改一轮,禁止自动转码,而给浏览者提供我们自己的手机版。这个工作量还很有一些,要逐个站点去修改。

评论

-- 发自IP地址: 59.173.8.114 (位置 | 谁是)

  上周采用了百度转码声明中的办法A和B来禁止转码,倒是可以禁止成功,可百度手机搜索给出的结果是一个所谓“中间页”,提示浏览者:

百度转码声明

该页面不允许进行转码,您可直接查看原网页

<<返回上一页

  一般浏览者也不懂啥转码,很多都是返回上一页去了,我们其实在页面中指出了手机版网址,可百度还是要造这个中间页来截留用户,真是太...了

  我们只有设法采用办法C来进行识别和跳转,今天花了好些时间,下载了一个User Agent Switcher,安装到FireFox中,来模拟百度转码的User Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; baidu Transcoder;),再反复设置Apache ReWrite规则,总算是可以设置好了,已经可以识别、跳转了,但并没有“显示声明:Content-Type为:vnd.wap.xhtml+xml”,因为我们现在做的都是适合智能手机的站点,不算是以前的那种wap网站。

  目前测试站点通过,准备实施到更多站点中去。

James Qi / 祁劲松

-- 发自IP地址: 61.183.172.43 (位置 | 谁是)

在我们自己的手机版网站中Content-Type是什么就是什么(我们用的drupal的mobile theme提供的主题文件,里面有默认规定的Content-Type),不用管是不是vnd.wap.xhtml+xml,我们是通过上面说的办法C来让手机用户 及百度手机蜘蛛直接跳转到我们提供的手机版上,也就是不用百度转码的内容了。

James Qi / 祁劲松

-- 发自IP地址: 58.49.164.198 (位置 | 谁是)

我们的办法就是做自己独立的手机版网站,然后在apache服务器上判断,对来自baidu转码的蜘蛛就自动重定向到我们自己的手机版网站上,符合百度提供的办法C的规范。
用robots.txt来禁止baidu Transcoder不合适,那样的话,自己做的手机版网站也不会被爬取了。

James Qi / 祁劲松

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符