【Nginx】记录 nginx 配置文件中 location下根据 ua (user-agent) 判断移动端和电脑端不同浏览器来源

简介: 【Nginx】记录 nginx 配置文件中 location下根据 ua (user-agent) 判断移动端和电脑端不同浏览器来源

一、背景描述

由于已出货的产品上印的有APP软件的下载地址(https://www.****.com/a/fwyzc/mrjxz/) 的二维码,而这个下载地址是无法改变的,使用手机扫描这个二维码出现web端的页面,对手机用户来说很不友好,所以需要解决手机端扫描二维码后自动适配手机端的问题。

二、问题原因

nginx原先配置方式

    location  /a/fwyzc/rjxz {
             # 以下内容表示会跳转到Web端页面,即跳转到 /data/root/****/****/cn/web/software_download.html 这个页面
             alias   /data/root/****/****/cn/web;
             index software_download.html;
    }

对于这个URL来说,nginx配置已强制跳转至 web 页面了,所以手机端无论怎么扫描,都是访问的 web 端页面。

三、解决方案

在这个 location 域中添加对 UA 的判断,注意判断 UA 条件里面,不能使用 root 指向,而使用 alias 后,重定向页面无效果,最后在大佬的建议下,在判断 UA 条件里面使用 rewrite 关键字才可以。

正确的配置如下所示:

  location  /a/fwyzc/rjxz/ {
      alias   /data/root/****/****/cn/web/;
      index  software_download.html;
      # 判断终端
      if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|iPad|BlackBerry)') {
          set $mobile_request '1';
          # 如果访问UA为移动终端类型则判断为 mobile_request=1
      }
      if ($http_cookie ~ 'mobile_request=full') {
          set $mobile_request '';
      }
      if ($mobile_request = '1') {
          rewrite  ^/(.*)$  https://$host/a/fwyzc/mrjxz/ redirect;                                                                                                                                    
      }
  }
  location  /a/fwyzc/mrjxz/ {
      alias   /data/root/****/****/cn/mobile/;
      index software_download.html;
  }

完结!


相关文章
|
1月前
|
缓存 负载均衡 应用服务中间件
深入解析Nginx配置文件
Nginx是一个高性能HTTP服务器和反向代理,其配置文件`nginx.conf`包含全局、事件、HTTP、Server和Location块。全局块设置如用户和工作进程数,事件块设定连接数,HTTP块涉及MIME类型、日志和包含其他配置。Server块定义虚拟主机,Location块处理URI匹配。Nginx常用于反向代理和负载均衡,如`proxy_pass`指令转发请求至后端服务器组。理解这些配置有助于服务器优化和测试。
31 0
|
14天前
|
Ubuntu 应用服务中间件 Linux
Linux学习之Ubuntu 20中OpenResty的nginx目录里内容和配置文件
总的来说,OpenResty的Nginx配置文件是一个强大的工具,它允许你以非常灵活的方式定义你的Web服务的行为。
17 2
|
21天前
|
JSON 应用服务中间件 nginx
Nginx的server块和location块的简单说明
Nginx的server块和location块的简单说明
|
24天前
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
26天前
|
应用服务中间件 nginx
如何通过Nginx配置将请求转发到conf.d目录下的各个配置文件
如何通过Nginx配置将请求转发到conf.d目录下的各个配置文件
53 2
|
1月前
|
前端开发 应用服务中间件 nginx
nginx前后端分离、多前端部署配置文件
nginx前后端分离、多前端部署配置文件
22 2
|
1月前
|
应用服务中间件 nginx
nginx更改配置文件后重启
nginx更改配置文件后重启
19 1
|
1月前
|
缓存 运维 应用服务中间件
理解和正确配置 Nginx 的 `location` 块是使用 Nginx 时至关重要的一部分
理解和正确配置 Nginx 的 `location` 块是使用 Nginx 时至关重要的一部分
31 2
|
22天前
|
Web App开发
软件开发常见流程之移动端调试方法,利用Chrome(谷歌浏览器)的模拟手机调试,搭建本地Web服务器,手机和服务器在一个局域网,通过手机访问服务器,使用服务器,利用ip实现域名访问
软件开发常见流程之移动端调试方法,利用Chrome(谷歌浏览器)的模拟手机调试,搭建本地Web服务器,手机和服务器在一个局域网,通过手机访问服务器,使用服务器,利用ip实现域名访问
|
22天前
|
Web App开发 编解码
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改