nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > nginx常用user_agent的匹配规则

nginx一些常用user_agent的匹配规则详解

作者:yuan19997

Nginx通过map模块可高效匹配user_agent,实现变量设置、访问控制、重定向等操作,如识别移动设备、拦截爬虫、区分浏览器类型,相比if指令,map模块更利于性能优化与规则精准管理

nginx常用user_agent匹配规则

nginx可以使用 map模块来实现user_agent的匹配规则,根据不同的user_agent设置不同的变量或执行不同的操作。

以下是一些常用的user_agent匹配规则示例:

判断是否为移动设备

map $http_user_agent $is_mobile {
    default 0;
    ~*mobile 1;
    ~*Android 1;
    ~*iPhone 1;
    ~*iPad 1;
}

这个规则将会判断用户的user_agent中是否包含"mobile"、"Android"、"iPhone"或"iPad"等关键词,若包含,则将$is_mobile变量设为1,否则设为0。

拒绝某些特定的user_agent

if ($http_user_agent ~* (Baiduspider|Googlebot|bingbot)) {
    return 403;
}

这个规则将会拒绝来自百度、谷歌和必应的爬虫访问,直接返回403禁止访问状态码。

设置变量根据user_agent进行条件判断

map $http_user_agent $browser {
    default "Unknown";
    ~*MSIE "Internet Explorer";
    ~*Firefox "Mozilla Firefox";
    ~*Chrome "Google Chrome";
    ~*Safari "Apple Safari";
}

这个规则将会根据user_agent的不同设置$browser变量,用于后续的操作。

根据user_agent重定向到不同的URL

if ($http_user_agent ~* (Android|iPhone|iPad)) {
    rewrite ^/$ /mobile/ permanent;
}

这个规则将会根据user_agent中是否包含"Android"、"iPhone"或"iPad"等关键词,将根目录的访问重定向到/mobile/目录下。

需要注意的是:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文