自动秒收录

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


文章编号:748 / 更新时间:2023-04-10 / 浏览:

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

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

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

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

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

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

二、如何实现代码适配?

1.服务器端的准备工作

为什么要修改VaryHTTP头?其实代码适配应用的是HTTP的内容协商机制,即服务器为同一个URL的请求提供了多份不同的文档作为响应,服务端和客户端之间会根据事先设定好的协商机制来选择适合的版本。最常见的就是服务端根据客户端发送的请求头中包含某些字段自动发送最合适的版本。Vary的作用就在于告诉代理服务器、缓存或者CDN,如何判断请求是否一样,vary中的组合就是代理服务器、缓存或者CDN判断的依据,比如Vary中有User-Agent(User-Agent:告诉HTTP服务器,客户端使用的操作系统和浏览器的名称和版本。例如: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.如何修改服务器http头

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

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

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

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

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

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

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

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

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

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

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

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

/*加载相应的模板文件*/

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

之前站长学堂文章<代码适配移动站点对百度友好案例分享>中提到过Google浏览器来模拟UA效果的插件,在此我再介绍一款火狐浏览器的UA模拟插件,它可以帮助各位站长轻松的”伪装”成其他平台/品牌的浏览器,来测试自己网站的适配结果

首先通过https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/下载并安装此插件,

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

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

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

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

扫描二维码推送至手机访问。

3浏览自媒体运营与推广

2浏览网站结构优化

2浏览外部链接建设

2浏览自媒体运营与推广


相关标签: 百度移动适配

本文地址:https://www.badfl.com/article/4a6e3246e360dca8951a.html

上一篇:看似正确的适配数据为何无法通过移动适配校...
下一篇:织梦移动化指南织梦移动站搭建方法...

发表评论

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="https://www.badfl.com/" target="_blank">自动秒收录</a>