最新消息:时间抓起来说是金子,抓不住就是流水。

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

Android 老子黑牵翻 2807浏览 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

转载请注明:LINUX服务器运维架构技术分享 » nginx根据客户端系统访问不同页面

头像
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址