只允许一个User-Agent,阻止nginx中的其余部分?

Nei*_*ald 7 nginx

这个网站的新手,所以我会保持简短:

我目前:

    if ($http_user_agent ~* (A-certain-self-made-User-Agent-here)) {
            return 200;
    }
Run Code Online (Sandbox Code Playgroud)

哪个效果很好.(通过切换200到403进行测试).

我的问题是:有没有办法:/ etc/nginx/sites-enabled/default使它只允许一个用户代理并拒绝其余的?

我知道这看起来很愚蠢,但这是我想做的事情(如果可能的话). 也许就像这样?:

    if (http_user_agent ~*(user-agent)) {
           return 200;
    else
           return 403;
    }
Run Code Online (Sandbox Code Playgroud)

Pro*_*eur 7

试试这个:

if ($http_user_agent !~* (A-certain-self-made-User-Agent-here)) {
        return 403;
}
Run Code Online (Sandbox Code Playgroud)

这应该是您的特定用户代理的"不匹配". 参考信息:HttpRewriteModule


Vid*_*yut 5

if ($http_user_agent !~* "A-certain-self-made-User-Agent-here") {
    return 403;
}
Run Code Online (Sandbox Code Playgroud)

正在我的网站上工作.


小智 0

您可以在适当的位置尝试以下操作

set $isallowed = "";
if ($http_user_agent = allowed_user_agent) {
    set $isallowed "${isallowed}YES";
}

if ($isallowed !~ YES) {
    rewrite ^ http://yourserver.com permanent;
}
Run Code Online (Sandbox Code Playgroud)