宝塔10周年开年大促,年度钜惠,先领红包再下单,享受折上折,还有抽奖!查看活动
当前位置:论坛首页 > Linux面板 > 讨论

nginx自动识别进行准确跳转

发表在 Linux面板2018-2-2 19:16 [复制链接] 0 3444

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


使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表