登录后台

页面导航

本文编写于 228 天前,最后修改于 228 天前,其中某些信息可能已经过时。

Nginx配置网页只能指定浏览器访问,项目需求,网页只能在微信内置浏览器打开,非内置浏览器禁止打开。
2种思路:
1、Nginx判断UA只能微信打开,此方式无法避免伪造的UA。

location / {
if ( $http_user_agent !~ "MicroMessenger" ){
return 405;
}
}

2、使用微信内置的JS接口判断是否微信环境。

附:多条件判断指定mobile目录只能微信访问

location / {
set $flag 0;
if ( $uri ~ "/mobile/" ){
set $flag "${flag}1";
}
if ( $http_user_agent !~ "MicroMessenger" ){
set $flag "${flag}1";
}
if ($flag = "011"){
return 405;
}
}

3、Nginx禁止特定UA访问

在Nginx中有一个内置变量$http_user_agent,表示HTTP请求头中的User-Agent字段。使用正则表达式匹配User-Agent字段中是否包含特定的字符串,符合规则的则禁止访问。具体实现如下:

location / {
if ($http_user_agent ~* (python-requests|Apache-HttpClient)) {
return 403;
}
}
博主已关闭本页面的评论功能