使用 map 语句实现特定域名的 UA 只能带 'qyuc' 才能访问

map $http_user_agent $ua_allowed {
  default 0;
  '~*qyuc' 1;
}

# 将 map 语句放在 http 块内,而不是 server 块内
http {
  # 其他配置...

  map $http_user_agent $ua_allowed {
    default 0;
    '~*qyuc' 1;
  }

  server {
    listen 80;
    server_name yourdomain.com;

    # 判断 UA 是否合法
    if ($ua_allowed = 0) {
      return 403;
    }

    # 其他配置...
  }

  # 其他配置...
}

代码说明:

  • map $http_user_agent $ua_allowed:使用 map 语句定义一个名为 ua_allowed 的变量,它根据 $http_user_agent 的值来判断是否允许访问。
  • default 0:默认情况下,ua_allowed 的值为 0,表示不允许访问。
  • '~*qyuc' 1:如果 $http_user_agent 包含 qyuc,则 ua_allowed 的值为 1,表示允许访问。
  • if ($ua_allowed = 0) { return 403; }:如果 ua_allowed 为 0,则返回 403 错误,表示禁止访问。

注意:

  • yourdomain.com 需要替换为您的实际域名。
  • 该代码应该放在 http 块内,而不是 server 块内。
  • 您可以根据需要修改 qyuc 为其他字符串,例如 companyappname
Nginx 限制特定域名 UA 访问 - 使用 map 语句

原文地址: https://www.cveoy.top/t/topic/nwFA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录