近几年来,随着手机和pad的普及,越来越多的用户选择使用移动客户端访问网站,而为了获取更好的用户体验,就需要针对不同的设备显示出最合适的匹配,这样就是近年来流行的“响应式web设计”。
响应式web设计是一种纯前端技术js、css等实现的针对不同设备访问同一网址看到不同的布局,是页面内容更适合当前设备阅读。但这个不是本文的重点,重点还是放在nginx如何实现上来。
本文要讲的的是如何使用nginx区分pc和手机访问不同的网站,是物理上完全隔离的两套网站(一套移动端、一套pc端),这样带来的好处pc端和移动端的内容可以不一样,移动版网站不需要包含特别多的内容,只要包含必要的文字和较小的图片,这样会更节省流量。有好处当然也就会增加困难,难题就是你需要维护两套环境,并且需要自动识别出来用户的物理设备并跳转到相应的网站,当判断错误时用户可以自己手动切换回正确的网站。
手机访问PC页面自动跳转至手机站点伪静态中写入这个规则
nginx增加如下配置,根据UA和cookie判断当前是移动端还是PC端访问
- if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
- set $mobile_request '1';
- }
- if ($http_cookie ~ 'mobile_request=full') {
- set $mobile_request '';
- }
- if ($mobile_request = '1') {
- rewrite ^.+ http://m.你的域名.cn$uri;
- }
复制代码 电脑不允许访问手机版也可以这么写入伪静态规则也是同上面类似
- if ($http_user_agent ~* '(PC|Windows|WOW64)') {
- set $pc_request '1';
- }
- if ($http_cookie ~ 'pc_request=full') {
- set $pc_request '';
- }
- if ($pc_request = '1') {
- rewrite ^.+ http://www.你的域名.cn$uri;
- }
复制代码
|
|