为更好提升移动端的用户体验,一般都会单独的开发一个专门给移动端用户访问的站点(如m.baidu.com)。当用户用移动终端访问站点时,自动跳转到m站点。
跳转规则既可以放在前端,由JS控制,也可以通过配置nginx,实现自动跳转。nginx方式减少了网络请求,更快。
那Nginx要如何配置呢?
常见的方案是,通过User-Agent
判断是否移动设备,如果是则跳转到m站点。可是移动终端类型那么多,要全部自己写也是挺麻烦的。还好有个检测移动浏览器的开源项目Detect Mobile Browsers,直接拿过来用就好了。
整站适配
如果是移动设备访问blog.pandll.com
,则自动跳转至m.pandll.com
。
Nginx配置如下:
1 | server { |
设置完成后,可通过下面的curl
命令测试。
1 | 正常访问 |
部分页面适配
如果你的PC站点页面比较多,而你只是部分页面有做移动端适配的话。上面的配置就不能满足需求了。
下面假定只需要适配production和article页面,即移动设备只有访问blog.pandll.com/production/...
和blog.pandll.com/article/...
页面,才分别跳转至m.pandll.com/production/...
和m.pandll.com/article/...
,其他页面还是访问PC站点的页面。
Nginx配置如下:
1 | server { |
部分页面适配(但某个页面例外)
假如你的需求更复杂,在blog.pandll.com/article/...
路径下,你有子路径页面blog.pandll.com/article/nginx/...
不想跳转到m站点。
Nginx配置如下:
1 | server { |