有时候需要对一些参数或者请求链接做屏蔽,那么如何屏蔽呢?
假设是根据参数屏蔽,则可以配置:
if ($query_string ~ "/page/.*/page/") {
return 403;
}
假设是根据请求链接屏蔽,则配置为:
location ^~ /abc.php {
return 403;
}
至于location后面的正则等标志的意思:
- = 开头表示精确匹配
- ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头
- ~ 开头表示区分大小写的正则匹配 以xx结尾
- ~* 开头表示不区分大小写的正则匹配 以xx结尾
- !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
- / 通用匹配,任何请求都会匹配到。
未经允许不得转载:阿藏博客 » Nginx根据参数或者请求链接返回403