7

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

我目前有:

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

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

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

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

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

3 回答 3

7

尝试这个:

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

这在您的特定用户代理上应该是“不匹配”。 此处参考信息:HttpRewriteModule

于 2013-07-17T17:18:10.660 回答
5
if ($http_user_agent !~* "A-certain-self-made-User-Agent-here") {
    return 403;
}

is working on my site.

于 2013-07-19T19:03:28.367 回答
0

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

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

if ($isallowed !~ YES) {
    rewrite ^ http://yourserver.com permanent;
}
于 2013-07-17T14:16:51.990 回答