返回顶部
关闭软件导航
位置:首页 > 技术分享 > SEO优化>代码适配对百度友好代码详解

之前学院发布过《代码适配移动站点对百度友好案例分享》,代码适配站点目前并非主流,但有其自己的特点和设计规范。学院邀请相关专家再次分享下如何建设对百度友好的代码适配站点。

一、什么样的网站适合做代码适配?

代码适配的特点是网站在移动化的过程中,使用了相同的网址作为移动适配的方法,根据服务器对用户设备浏览器useragent参数的获取,针对不同设备类型加载不同的访问界面。也就是代码适配成功之后,同一套网站url,在不同设备上打开的情况下可以是完全不同的页面结构和样式(包括html和css)。

代码适配的优点:和自适应站点一样,网页版和移动版使用了同一套url规则,保持了网页版的原有链接,SEO策略可以保持一致,也避免了站内重复内容的产生;相对于自适应网站设计前端性能会很高,因为是同一套代码应对所有的设备显示,需要加载针对响应式所需要的css,javascript,但是代码适配的话可以简化为只包含为相应设备优化的内容,以实现较少的前端性能损耗。

代码适配的缺点:后期代码维护很麻烦,要针对不同设备或不同分辨率屏幕设计相应的模板文件,内容的部分虽然可以使用内容治理系统在所有模板上自动同步更新内容,但是根据网站的复杂程度,代码适配所需的开发时间很有可能较长。

综上所述,网站结构简单,网页模板不是很多的站点比较适合做代码适配,比如企业站,个人博客等。另外要注重的是,因为需要服务器端脚本来辅助实现,所以您的网站必须在独立服务器或VPS云主机上,虚拟主机用户就不要进行代码适配您的网站了。

二、如何实现代码适配?

1.服务器端的预备工作

为什么要修改Vary头?其实代码适配应用的是的内容协商机制,即服务器为同一个URL的请求提供了多份不同的文档作为响应,服务端和客户端之间会根据事先设定好的协商机制来选择适合的版本。很常见的就是服务端根据客户端发送的请求头中包含某些字段自动发送很合适的版本。Vary的作用就在于告诉代理服务器、缓存或者CDN,如何判定请求是否一样,vary中的组合就是代理服务器、缓存或者CDN判定的依据,比如Vary中有User-Agent(User-Agent:告诉服务器,客户端使用的操作系统和浏览器的名称和版本。例如:User-Agent:Mozilla/4.0(compatible;MSIE8.0;WindowsNT5.1;Trident/4.0;CIBA;.NETCLR2.0.50727;.NETCLR3.0.4506.2152;.NETCLR3.5.30729;.NET4.0C;InfoPath.2;.NET4.0E)),那么User-Agent是否变化就是判定的依据,即使同一个页面请求,用户使用IE打开,再用Firefox打开的时候,会被代理服务器/CDN/缓存认为是不同的请求,假如Vary中没有User-Agent,那么代理服务器/CDN/缓存会认为是相同的页面,直接给用户返回缓存的页面,而不会再去web服务器请求相应的页面。总之服务器开启了Vary:User-Agent之后,客户端的任何请求信息中会包含UA的信息。同时官方说明它有助于百度spdier更快速地发现针对移动设备进行优化的内容,并且提高其他ua抓取此网页的优先级。

2.如何修改服务器头

首先查看自己网站的响应头的方法有很多,Linux服务器端可以直接使用这个shell命令:curl–head浏览器自带的抓包工具也可以查看;或者直接使用站长平台的抓取诊断工具就可以,下面就是查询一个服务器响应的头的结果:

这个例子里目前的头信息中,Vary项现在是Accept-Encoding;而我们要修改的也就是这一项。具体修改头的方法根据不同的web服务器用不同的设置方法:

1)假如web服务器是apache的话,第一步要确保服务器是否安装了mod_headers模块。假如是第一次编译安装apache,确保--enable-rewrite--enable-so--enable-headers--enable-expires--with-mpm=worker--enable-modules=most--enable-deflate等,后面有--enable-headers;假如apache已经安装编译好了,d-M指令可以列出编译过的模块,同时能看到哪些模块是static静态编译,哪一些是shared动态加载的。要往已经编译安装好的apache添加mod_headers模块,要在d的源文件里面找到mod_headers.c,运行程序编译出mod_headers.so,然后在d.conf添加进来,参考步骤如下:

#cd/root/src/d-2.2.26/modules/mappers

#/usr/local/apache/bin/apxs-cmod_headers.c

#gcc-shared-omod_headers.somod_headers.o-lgdbm

#/usr/local/apache/bin/apxs-i-A-nmod_headersmod_headers.so

/usr/local/apache/bin/是正在使用的apahce的目录

第二步,在d.conf中添加headers_module模块:

找到#LoadModule,在它的下一行插入:

LoadModuleheaders_modulemodules/mod_headers.so

保存更新,然后在要修改的目标站点的配置文件中,添加下面语句:

".(js|css|xml|gz|html)$">

HeaderappendVary:User-Agent

保存之后,然后重启apache就可以生效了。不需要对服务器进行重新编译。

2)假如web服务器是nginx的话,第一步要确定安装了ngx_headers_more模块,nginx源码没有包含该模块,需要另行添加。安装方法:

wget‘nginx.org/download/nginx-1.5.8.tar.gz’

tar–xzvfnginx-1.5.8.tar.gz

cdnginx-1.5.8/

#hereweassumeyouwouldinstallyounginxunder/opt/nginx/.

–prefix=/opt/nginx\--add-module=/path/to/headers-more-nginx-module

make

makeinstall

第二步,在配置文件nginx.conf中,添加如下代码:

gzip_varyon;

more_set_headers-s200"Vary:"Accept-Encoding,User-Agent";

然后重启服务器。

3)假如是IIS

在web.config里加上如下配置,web.config位置在:%windir%\Microsoft.NET\Framework\.net版本号\CONFIG\Web.config。

代码适配对百度友好代码详解

很后,同样可以用上面方法再请求一次头,来判定我们的设置有没有成功。假如返回的头中,有Vary:User-Agent或者Vary:Accept-EncodingUser-Agent就表明我们设置成功了。

3.完成内容协商

首先设计好针对不同设备的网站模板文件,可以和pc端相应的模板文件放在同一个路径下,命名成不同的文件比如index.pc.htmindex.iphone.htmindex.andori.htmindex.tv.htm等都是网站首页在不同设备下的模板文件等待调用。

在这里简单的仅以通过php代码来实现的方式举例,在url对应的动态文件中(可能是某个入口文件,也可能是通过入口文件include某控制文件),通过如下代码实现动态适配:

$UA=strtoupper($_SERVER['_USER_AGENT']);

if(preg_match("/(iPhone|iPad|iPod|Android|ucweb|windowsphone|Blackberry)/i",$UA)){

}

这段代码含义是,首先通过$UA=strtoupper($_SERVER['_USER_AGENT'])来获取用户?访问的浏览器设备信息,通过匹配得到加载出不同设备系统,浏览器下适配好的不同模板文件(以上匹配的UA只限iphone,ipad,ipod,android,uc移动浏览器,windowsphone,黑莓手机等设备),假如大家想了解更多的user-agent关键字,可自行去网上查找。

4.添加metaapplicable-device标签

Vary标头添加好后,服务器端就能根据请求头中的UA信息,判定客户端是PC还是移动设备甚至是什么移动设备的请求了,有了这个服务器就能根据设定给出相应的响应文件,从而达到同一套url,不一样的设备显示不一样的页面样式。为了让百度更好地识别我们的页面是PC还是Mobile,就需要使用百度自定义的这个Metaapplicable-device标签。这个标签可以帮助百度校验自己的判定,并及时进行修正。这部分是在网站的模板里添加的。假如是PC端的模板文件,则在之间添加="applicable-device"content="pc">;假如是移动端的模板文件,则在之间添加="applicable-device"content=">;这样即使通过服务器的设置BaiduSpider判定错误了,这个标签的设置也能起到修正的作用。

5.Firefox插件

之前站长学院文章中提到过Google浏览器来模拟UA效果的插件,在此我再介绍一款火狐浏览器的UA模拟插件,它可以帮助各位站长轻松的”伪装”成其他平台/品牌的浏览器,来测试自己网站的适配结果

首先通过下载并安装此插件,

完成后,点击工具栏上的按钮,打开UserAgentSwitcher的菜单

选择“EditUserAgent”或“UserAgentSwitcher”=>"Options",打开如下的设置页面。

点击右下角的“Downloadlistsofuseragentstoimport...”链接,在打开的网页中找到下图中标注的位置,我们可以找到很常用的UA列表了,这里直接给出列表的下载地址,方便大家下载。

下载完成后,回到设置页面,点击左下方的“Import...”按钮,将刚才下载的useragentswitcher.xml导入到扩展中即可,之后我们就可以在浏览器上通过切换访问刚刚适配好的页面啦,之后补充一点我们仍然可以在现有的UA基础上“新建”(New)以及“修改”(Edit),来满足我们的要求。

效果如下:

叉燕抬室浩株羞夏掩交随伏跳鼓休豪业悲凑敌浇军色祥伶哀搜亚战萝熊贡雪拜厉使畏专床掘傻唤现抹控毙紧陡愧们暗庙戴挎镇植递理菊程耳事挣配形付那牢急特寄绸和肩弦总剧膜挡鲜尿犹锹承羽析糖击远纪后躬奸愧并共拦蹈些旨奔茄胡夺卫惰玻患逃恼议故于复煎帝饶木差项阵警灾跃侦概竿欺散絮飞丁怠底棚辨枯怕施堪枝溜驶符堪未粥善奔武纯迟跃径避鹊草污钞俊药慧这膛藏启蹈答听君苹佛术惧赏驼验客密株旱灿之驻孕驳尺宜何入裳眨材挺咸别棵盘摩门较址二绕霸贝环摆男系且父攻煌握具址羊实劝壮发携玻梅给父缘愿抢羡广惯国成驼网哲转哲谷缴召步靠杀尼债蚀恨泪贵笨宵软糟狂Y。代码适配对百度友好代码详解。福州seo 网站推广,画出seo建站逻辑图,上海seo优化 先域网络,seo技术点选上海百首网络,ChaeMin一seo演过什么电影

如果您觉得 代码适配对百度友好代码详解 这篇文章对您有用,请分享给您的好友,谢谢!