[转]NGINX-检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点...

原文地址:https://blog.51cto.com/10978134/2163757

检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点

此配置方法由Detect Mobile Browsers网站提供,是美国的一个免费开源的针对开发者检测移动端的解决方案,支持各种环境下的规则适配。访问地址:http://detectmobilebrowsers.com/

1、检测客户端若是通过移动设备访问的,则将请求重定向到移动端适配的WEB站点

在PC端的配置中做判断,若客户端是通过一个移动设备上的浏览器访问的,则将其重定向到移动端适配的WEB站点中。

[root@localhost ~]# vim /etc/nginx/conf.d/chengfeng.conf
server {server_name  www.chengfeng.com;listen       80 default_server;include /etc/nginx/conf.d/chengfeng_redirect/chengfeng_mobile_redirect.conf;...
}
[root@localhost ~]# vim /etc/nginx/conf.d/chengfeng_redirect/chengfeng_mobile_redirect.conf
set $mobile_rewrite do_not_perform;if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino") {set $mobile_rewrite perform;
}if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)") {set $mobile_rewrite perform;
}if ($mobile_rewrite = perform) {rewrite ^ http://mobile.chengfeng.com redirect;break;
}

2、检测客户端若是通过电脑访问的,则将请求重定向到电脑端适配的WEB站点

在移动端的配置中做判断,若客户端是通过PC浏览器访问的,则将其重定向到电脑端适配的WEB站点中。

[root@localhost ~]# vim /etc/nginx/conf.d/chengfeng.conf
server {server_name  mobile.chengfeng.comlisten       80 default_server;include /etc/nginx/conf.d/chengfeng_redirect/chengfeng_www_redirect.conf;...
}
[root@localhost ~]# vim /etc/nginx/conf.d/chengfeng_redirect/chengfeng_www_redirect.conf
set $www_rewrite do_not_perform;if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino") {set $www_rewrite perform;
}if ($http_user_agent ~* "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)") {set $www_rewrite perform;
}if ($www_rewrite != perform) {rewrite ^ http://www.chengfeng.com redirect;break;
}

 

转载于:https://www.cnblogs.com/eedc/p/11199228.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

maya计算机内存不足请保存,Maya内存不足不能渲染怎么优化场景?

Maya内存不足不能渲染怎么优化场景?可能由于Maya的场景文件过于复杂,或者材质质量过高的问题,用户最终渲染时会出现无法启用高质量的渲染工作的错误,这时候用户可以选择做一些合适的处理,以保证渲染工作的正常进行。Ma…

如何提高效率SQLITE 大数据量操作效率

今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟! usingSystem.Data;usingSystem.Data.Common;usingSystem.Data.SQLite;//创建数据库文件File.Delete("test1.db3…

vc6开发一个抓包软件_惊奇软件[21]:这是一个程序员开发的背单词网站,可好用了!...

惊奇软件未经授权禁止转载正文---------------------------------哔哩哔哩小破站的UP主们就是厉害......就在前几天,小编我想找一款背单词的软件(某百词用的有点腻),想到哔哩哩哩上的朋友们都比较年轻,喜欢学习,我就上哔哩哔哩搜索…

[html] 怎样使用iframe刷新父级页面?

[html] 怎样使用iframe刷新父级页面? //在父页面中window.addEventListener("message",function(e){if(e.data.reload){winodw.location.reload()}}, false);//在子页面中window.parent.postMessage({reload:true})个人简介 我是歌谣,欢迎和大…

执行计划中的参数解释

执行计划中的各个参数解释: 一、Recursive calls (递归调用) 1、参考:Oracle Database Reference, 10g Release 2 (10.2).pdf第916页 Number of recursive calls generated at both the user and system level. Oracle maintains …

java jsonobject_Java实现QQ登录

准备工作1. 云服务器2. 备案的域名3. 本地调试需要修改hosts文件,将域名映射到127.0.0.1一、申请QQ互联,并成为开发者QQ互联:QQ互联官网首页登录后,点击头像,进入认证页面,填写信息,等待审核。审…

周至四中计算机老师,周至县第四中学顺利承办周至县 “教育信息化技术与教学课堂深度融合交流研讨会”...

原标题:周至县第四中学顺利承办周至县 “教育信息化技术与教学课堂深度融合交流研讨会”5月22日,周至县 “教育信息化技术与教学课堂深度融合交流研讨会”在我校举行,周至县教科局党委书记、局长张武祥、副局长尚雷、教研室书记杨正良、电教中…

常规dll 的接口函数定义+客户端程序接口函数导入

--> blog 常规dll 的接口函数定义extern "C" __declspec(dllexport) int addcart_Click(LPCTSTR lpszInput, LPTSTR lpOutput){常规dll 的接口函数实现extern "C" __declspec(dllimport) int addcart_Click(LPCTSTR lpszInput, LPTSTR lpOutput){转载于…

bin文件怎么转换成文本文档_Python脚本4:根据txt文本,批量创建文件夹

背景:深度学习图像分类的时候,有许多的标签类。1000个标签就需要创建1000个文件夹,文件夹里面放入对应的图像。不可能一个一个右击创建文件夹,所以有了今天的脚本。根据txt文本每一行的类别,创建文件名为类别的文件夹。…

如何停止运行在服务器的项目,怎么启动和停止服务器

弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率三年低至5折,多种配置可选了解详情用户数据注…

安装应用程序时,提示以前的某个程序安装挂起的解决方法

在安装应用程序的时候出现这个问题,用下面的办法就可以解决。 打开注册表编辑器(开始->运行->regedit),在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperat…

Pro ASP.NET 4 CMS

Pro ASP.NET 4 CMS转载于:https://www.cnblogs.com/gavinhughhu/archive/2010/07/15/1777714.html

电脑home键在哪_电脑键盘各键的名称及使用方法

电脑键盘各键的名称及使用方法如下:1. Tab键:表格键,是baiTable的缩写,中文意思是表格。在电脑中的应用主要是在文字处理软件里(如Word)起到等距离移动的作用。2、Esc键:退出键,是Escape的缩写,…

ajax加载vue数据,详解使用Vue.Js结合Jquery Ajax加载数据的两种方式

整理文档,搜刮出一个使用vue.js结合jquery ajax加载数据的两种方式的代码,稍微整理精简一下做下分享。废话不多说,直接上代码html代码demo{{message }}测试jquery加载数据{{data.name}}{{data.url}}{{data.country}}js代码/*** created by se…

程序员如何跟领导提离职_员工辞职不交接工作被领导怒怼:我不批离职,跟你耗着,结果蒙了...

阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到文章了。每天都会有分享,都是免费订阅,请您放心关注。注:本文转载自网络,不代表本平台立场,仅供…

Silverlight 5 Beta新特性[4]文本缩进控制

持续带来Silverlight 5 Beta新特性的更新.在Silverlight 5 Beta版本对文本的处理能力做了真正的改进.其中从官方Silverlight 5 Beta Futurez中提到两个主要改善地方 翻译整理如下: Silverlight 5 Beta Text: …

编译器的2点优化

优化1 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。 如果没有超过左侧的范围,编译器补上强转。如果右侧超过了左侧范围,那么直接编译器报…

zoj 1115 Digital Roots

求各数位之和; 运用弃九法可以很快解出,但一开始没想到出入的会是字符串,WA了几次, AC代码如下 #include"iostream" #include"string" using namespace std; int main() {string str;while(cin>>str,st…

erp系统服务器都是维护些什么意思,erp系统维护服务器维护管理文档.doc

erp系统维护服务器维护管理文档ERP系统机箱及服务器管理维护文档page 4ERP系统机箱及服务器管理维护文档作者:数据技术组创建日期:2013-05-08修改日期:版本:1.0目录toc \o "1-3" 目录 PAGEREF _Toc295915832 \h 2HYPERLINK \l "编写说明" 编写说明 PAGEREF…

excel冻结窗口_excel成绩表怎么固定表头或者某一行?

当浏览成绩表时,很多人都会有这种困扰,就是好不容易找到自己的名字后,却又要往上翻看一下这个成绩对应的科目是什么,才能知道自己的各科成绩分别是多少。怎样才能固定表头或者某一行,不用来回浏览就可以轻松看到自己的…