本文目录
一、背景描述
二、问题原因
三、解决方案
一、背景描述
由于已出货的产品上印的有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;
}
完结!