blog icon indicating copy to clipboard operation
blog copied to clipboard

配置nginx区分user-agent做SEO的一个小问题

Open mrdulin opened this issue 7 years ago • 0 comments

今天在移动端搜狗浏览器访问测试环境项目时,出现公司统一的错误页面,而其他浏览器都是正常访问。

原因:nginx配置通过user-agent去区分是爬虫还是用户访问,用来定向到SEO静态模板还是用户端项目在服务器上的静态资源。

正则如下图,可见到里面有Sogou

image

测试机型:vivo X9Plus 通过charles抓包,vivo X9Plus移动端搜狗浏览器的默认UA是:

Mozilla/5.0 (Linux; Android 6.0.1; vivo X9Plus; Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.92 Mobile Safari/537.36 SogouMSE,SogouMobileBrowser/5.9.2

做个正则测试,发现确实匹配到了Sogou,所以我们的访问被nginx当作了爬虫UA。

image

继续验证是UA的问题,修改搜狗浏览器的UA设置,改成“电脑”,UA如下:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

用户端项目可以正常访问了。

最后:去修改nginx区分爬虫UA还是用户浏览器访问UA的正则。

mrdulin avatar Nov 29 '17 06:11 mrdulin