nginx 使用 map执行删除 user-agent的值
首先http段填写map映射
map $http_user_agent $cleaned_user_agent { default $http_user_agent; "~(.*)KHTML(.*)" "$1$2"; }
上面的实例中我替换掉的是KHTML这个字符串,$1$2是返回匹配的KHTML前面和后面的字符串并赋值给信的$cleaned_user_agent
然后,我们需要在对应的locaiton 里面,直接修改agent为咱们得新值
location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header User-Agent $cleaned_user_agent; root /opt/static; proxy_read_timeout 600; proxy_send_timeout 600; } }
这样,后端代码去获取 User-Agent的值的话就是替换过的值了
----------------扩展-----
如果是 修改某个字符串,则map如下
map $http_user_agent $modified_user_agent { default $http_user_agent; "~*(.*)Safari(.*)" "$1Chrome$2"; # 👈 替换 Safari → Chrome }
等于是匹配前后值之后,再拼接我们想替换的字符串。
本文来自博客园,作者:忙碌在路上,转载请注明原文链接:https://www.cnblogs.com/netsa/p/18926665