抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

问题

公司做了两套系统 PC 端和移动端网站,最近做了Nginx根据设备标识是否是手机进行 pc 域名 www 跳转 移动端域名 m ,配置切换后,导致一些资源丢失,经过排查出现这个问题的原因如下

原因

因为手机端适配 PC 页面,有些页面没有开发,移动端内直接使用www 进行访问, 在切换设配标识配置后,多次重定向,最终 使用移动端域名访问了没有适配的 URI,因为没有适配,资源访问出现404

解决方法

  1. www 根据设备标识跳转m 保留
  2. 因为接口数据来源可以使用wwwPC 端,因此m 中加入根据URI 进行逻辑判断,未做适配的走www 的 IP:port 访问,其余的走m 的 IP:port 访问,具体实施如下

ww.conf

1
2
3
if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) http://m.byron.com$1 permanent;
}

m.conf

1
2
3
4
5
6
7
location / {  
if ($uri !~ ^/$|^/a/b\?c=d$|^/e$|^/f/g$|^/h/.+) {
proxy_pass http://127.0.0.1:8000;
break;
}
proxy_pass http://http://127.0.0.1:8008;
}

临时性的解决方法,最终还是要把工程完善,才对。

评论