Nginx 限制特定域名 UA 访问 - 使用 map 语句
使用 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为其他字符串,例如company或appname。
原文地址: https://www.cveoy.top/t/topic/nwFA 著作权归作者所有。请勿转载和采集!