颠覆传统,我有担当 学SEO只选有担当的机构
首页 >移动SEO > 移动SEO优化:手机网站如何实现代码适配(上)

移动SEO优化:手机网站如何实现代码适配(上)

SEO培训学院2015-12-07 19:22:24来源:百度站长学院

1.服务器端的准备工作

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

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

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

#gcc-shared -o mod_headers.so mod_headers.o -lgdbm

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

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

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

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

LoadModule headers_module  modules/mod_headers.so

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

<IfModulemod_headers.c>

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

          Header append Vary: User-Agent

        </FilesMatch>

</IfModule>

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

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

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

tar –xzvf nginx-1.5.8.tar.gz

cd nginx-1.5.8/

#here we assume you would install you nginx under/opt/nginx/.

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

make

make install

 

免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!

热门标签:
移动端SEO优化 手机网站优化
收藏人收藏
3

相关文章

最新文章

专业的SEO培训机构

师资团队教学环境关于我们联系我们学员体验热门标签

Copyright©1999-{date('Y')} 北京中公教育科技股份有限公司 .All Rights Reserved
京ICP备10218183号-88 京ICP证161188号 京公网安备11010802020723号