kavin

nginx根据客户端系统访问不同页面

kavin 运维技术 2023-01-29 849浏览 0

今天有朋友问了我一个问题,能不能PC用户访问的是根目录下的index.html文件,而手机用户访问的是mobile.html文件,之前我看到过nginx有一个模块HttpBrowserModule来实现根据浏览器选择主页,我朋友问我的问题和这个很类似,但是这个却不能满足我朋友的需求,因为对于浏览器来说,即能在手机上装,也能在PC上装,后来我着重分析了nginx的$http_user_agent能获取的参数,发现,通过手机访问的获取到的客户端信息带有Android,Windows; U;,Liunx; U;,iPhone等内容,于是我就用正则匹配的方式来实现
代码如下:

if ($http_user_agent ~* "Windows; U;") {
    rewrite . /mobile.html break;
}
if ($http_user_agent ~* "Linux; U;") {
    rewrite . /mobile.html break;
}
if ($http_user_agent ~* "iPhone") {
    rewrite . /mobile.html break;
}
if ($http_user_agent ~* "Android") {
    rewrite . /mobile.html break;
}

只需要在server里面加入以上内容就可以
通过这种设置,我测试通过安卓手机自带的浏览器,UC浏览器,百度浏览器,iphone的自带的浏览器都能正常跳转到mobile.html这个页面,而通过PC访问,也能正常访问到index.html

继续浏览有关 Android 的文章
发表评论