H5页面页面跳转我们自己的网址后useragent中丢失MicroMessenger/
正常的:Mozilla/5.0 (Linux; Android 12; NOH-AN01 Build/HUAWEINOH-AN01; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.141 Mobile Safari/537.36 XWEB/5015 MMWEBSDK/20230202 MMWEBID/2534 MicroMessenger/8.0.33.2320(0x28002151) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64
跳转后:Mozilla/5.0 (Linux; Android 12; NOH-AN01 Build/HUAWEINOH-AN01; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.141 Mobile Safari/537.36 XWEB/5015 MMWEBSDK/20230202
涉及手机型号,华为mate40pro p50,三星S21 5G
一些支持代码适配的 CDN 加速服务,则需要在 HTTP 的报文头中添加 Vary:User-Agent 这个参数。Nginx 环境网站配置 Vary:User-Agent。将以下代码添加到对应站点的配置文件中试下:
add_header Vary "User-Agent";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header User-Agent $http_user_agent;
检查您的 Nginx 配置文件是否包含任何可能导致丢失 user-agent 信息的规则。 例如,如果您的配置文件包含以下规则:
location / {
if ($http_user_agent ~* "MicroMessenger") {
rewrite ^/(.*)$ /mobile/$1 break;
}
}
则需要将 rewrite 规则更改为:
location / {
if ($http_user_agent ~* "MicroMessenger") {
rewrite ^/(.*)$ /mobile/$1 permanent;
}
}
问题描述:Nginx 在转发请求时,丢失了 User-Agent 头信息中微信 MMWEBID 后面的所有内容,导致后续处理出现问题。
常见原因:
Nginx 默认配置中 underscores_in_headers 参数设置为 off,会导致下划线(_)被替换为空格,从而丢失 MMWEBID 后面的内容。
请求头长度超过 Nginx 限制,导致部分内容被截断。
解决方法:
修改 Nginx 配置文件,将 underscores_in_headers 参数设置为 on。
调整 Nginx 的 client_header_buffer_size 和 large_client_header_buffers 参数,增加请求头长度限制。
underscores_in_headers on;
这样设置后,Nginx将不再忽略含有下划线的头部字段,从而确保`User-Agent`中包含`MMWEBID`及其后续内容的请求头能够完整地转发给后端。
遇到同样的问题,有解决方案了吗
遇到了同样的问题,荣耀20,华为p40pro,小米10、小米13的安卓版本经过页面重定向后,user-agent中的MicroMessenger微信标识也是丢失了
最后解决了吗
遇到了同样的问题,请问这个最终解决了吗?
这个问题解决了吗?我这边也出现这个问题了
问一下,最后怎么处理的呢?遇到同样的问题了
链接直接用微信点开,是没有问题的,通过项目跳转有问题
项目地址:https://wxtest.zhufengic.com/wxTerminal/buy/redirectToProd.do?pid=dd904277-4a1d-4d47-a131-754732a68136&prodType=ZFWXPT1116002
跳转地址:https://epuat.zhufengic.com/payment/ePayChoosePayTypeMobile?orderNo=20230330160324620409602325