第二步,在配置文件nginx.conf中,添加如下代码:
gzip_vary on;
more_set_headers -s 200 "Vary: ""Accept-Encoding, User-Agent";
然后重启服务器。
3) 如果是IIS
在web.config里加上如下配置,web.config位置在:%windir%/Microsoft.NET/Framework/.net版本号/CONFIG/Web.config 。
最后,同样可以用上面方法再请求一次http头,来判断我们的设置有没有成功。如果返回的头中,有Vary:User-Agent 或者Vary:Accept-Encoding User-Agent 就表明我们设置成功了。
3.完成内容协商
首先设计好针对不同设备的网站模板文件,可以和pc端相应的模板文件放在同一个路径下,命名成不同的文件比如index.pc.htm index.iphone.htm index.andori.htm index.tv.htm等都是网站首页在不同设备下的模板文件等待调用。
在这里简单的仅以通过php代码来实现的方式举例,在url对应的动态文件中(可能是某个入口文件,也可能是通过入口文件include某控制文件),通过如下代码实现动态适配:
$UA = strtoupper($_SERVER['HTTP_USER_AGENT']);
if(preg_match("/(iPhone|iPad|iPod|Android|ucweb|windowsphone|Blackberry)/i", $UA)) {
/* 加载相应的模板文件 */
}
这段代码含义是,首先通过$UA =strtoupper($_SERVER['HTTP_USER_AGENT'])来获取用户 访问的浏览器设备信息,通过匹配得到加载出不同设备系统,浏览器下适配好的不同模板文件(以上匹配的UA只限iphone,ipad,ipod,android,uc移动浏览器,windows phone,黑莓手机等设备),如果大家想了解更多的httpuser-agent关键字,可自行去网上查找。
4.添加metaapplicable-device标签
Vary标头添加好后,服务器端就能根据请求头中的UA信息,判断客户端是PC还是移动设备甚至是什么移动设备的请求了,有了这个服务器就能根据设定给出相应的响应文件,从而达到同一套url,不一样的设备显示不一样的页面样式。为了让百度更好地识别我们的页面是 PC 还是 Mobile,就需要使用百度自定义的这个 Meta applicable-device 标签。这个标签可以帮助百度校验自己的判断,并及时进行修正。这部分是在网站的模板里添加的。如果是PC端的模板文件,则在 之间添加;如果是移动端的模板文件,则在 之间添加
选择“EditUser Agent”或“UserAgent Switcher”=>"Options",打开如下的设置页面。