# Nginx如何通过伪静态规则禁止访问指定URL

*Published:* 2023-12-25
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年12月25日，已超过 180天没有更新



$request\_uri既可以拦截匹配url，也可以匹配参数args。

$args只可以匹配请求参数。

因此如果想要区别是参数发生了拦截，还是url发生了拦截，就需要先设置$args，再设置$request\_uri。

```
location /aa/ {
    #虚拟主机真正映射路径
    default_type text/html;
    if ($args ~* "%3Cscript%3E") {
         return 200 'Bad Args';
    }
    if ($request_uri ~* "%3Cscript%3E") {
         return 200 'Bad Url';
     }
    proxy_pass  http://1.1.1.189:8080/;
```

上面这个方法可以解决通用型违法参数。

但我个人是用不上这种方式的，因为网站被刷量，所以我只需要让[nginx](https://www.xarjtc.com/tag/nginx "查看nginx此标签更多文章")识别来路就行。

如我的网站来路结尾都有一个 ?wd=xxxx 这种形式，所以我在配置文件中这么写。

```
#屏蔽一些刷量的链接 
if  ($request_uri ~* "\?wd=") {
    return 403   "I've recorded your ip Wait to check the water meter";
    }
```

这样就可以解决问题了。