前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >移动端访问跳转失效

移动端访问跳转失效

原创
作者头像
mengmye
修改2021-03-04 15:31:11
1.7K1
修改2021-03-04 15:31:11
举报

背景:

大家都知道,电脑、平板、手机的屏幕是差距很大的,比如在电脑上写好了一个页面,在电脑上显示很正常,但是若通过手机访问,那可能就会乱的一塌糊涂,这个时候怎么解决呢?有一种常见的办法是专门为手机定制一个页面,当用户访问的时候,判断设备是手机还是电脑,如果是手机则跳转到相应的手机页面,例如百度的就是,手机访问www.baidu.com就会跳转到m.baidu.com。

问题描述:

客户反馈移动端访问http://3qys.com.cn/xxx时,没有按照预期跳转至http://m.3qys.com.cn/xxx。

原因分析:

1、确认问题时间点附近,CDN侧是否有配置变更;

2、确认移动端访问跳转的功能是由客户源站实现,还是CDN侧实现;

经确认,该跳转功能是由源站实现,且源站和CDN侧均无配置变更。

模拟移动ua测试,未复现现象。分析日志,发现问题时间点前有pc端访问http://3qys.com.cn/的记录,且该url匹配到缓存策略,被节点缓存住了。此时,原因定位到!!!

默认情况下,CDN侧并不会区分ua缓存,也就是pc端访问某文件缓存住后,移动端再请求至有该文件缓存的节点时,会直接命中,不会再回源。

ps:若源站有响应头Vary: User-Agent,有些CDN厂商会根据不同的ua区分缓存。腾讯云会忽略vary头,即不会根据vary头部值的不同而区分缓存。

测试方法:

1、curl -A 模拟测试

curl -voa 'http://3qys.com.cn/eg_tulip.jpg' -A 'iphone'

2、下载谷歌插件,通过谷歌浏览器模拟移动ua测试

https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg/related

安装完成后,浏览器右上角会出现如下图标,点击"User-Agent Switcher for Chrome",选择需要测试的移动端设备类型即可。

解决方案:

1、跳转功能由源站实现,但需要跳转的url,CDN侧需配置不缓存,但这种方式会对源站造成压力。

2、由CDN侧实现访问跳转功能,即用户访问至边缘时,节点根据请求的ua来决定是否跳转,跳转到哪个地址。---推荐使用

配置该功能时,需要和客户确认移动端ua列表(是否区分大小写),需要设置跳转的url,以及希望跳转到哪个url。

示例:

ua:android|iphone|UCWEB|ipod|windows phone,不区分大小写

跳转url:除 3qys.com.cn/topics/、3qys.com.cn/zhuanti/ 这2个url,其它url均需要设置跳转

跳转后的url:http://m.3qys.com.cn/xxx

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档