【问题标题】:Allow only one User-Agent, block the rest in nginx?只允许一个用户代理,在 nginx 中阻止其余的?
【发布时间】:2013-07-20 03:03:28
【问题描述】:

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

我目前有:

    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;
    }

【问题讨论】:

    标签: nginx


    【解决方案1】:

    试试这个:

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

    这在您的特定用户代理上应该是“不匹配”。 Reference info here: HttpRewriteModule

    【讨论】:

      【解决方案2】:
      if ($http_user_agent !~* "A-certain-self-made-User-Agent-here") {
          return 403;
      }
      

      正在我的网站上工作。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-02-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-12
          • 2014-04-04
          • 1970-01-01
          相关资源
          最近更新 更多