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

时间:2013-07-16 10:35:28

标签: nginx

这个网站的新内容所以我会简短地说明一下:

我目前:

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

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

我的问题是:是否有办法:/ etc / nginx / sites-enabled / default使其仅允许 ONE 用户代理并拒绝其余?

我知道这似乎很愚蠢,但这是我想做的事情,(如果可能的话)。 就像这样?:

    if (http_user_agent ~*(user-agent)) {
           return 200;
    else
           return 403;
    }

3 个答案:

答案 0 :(得分:6)

试试这个:

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

这应该是您某个用户代理的“不匹配”。 Reference info here: HttpRewriteModule

答案 1 :(得分:5)

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

正在我的网站上工作。

答案 2 :(得分:0)

您可以在正确的位置尝试以下操作

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

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