Nginx匹配特定的路径网址/User-Agent(用户代理)设备做特定的屏蔽处理案例

原创 野人  2022-03-24 13:57  阅读 72 次

确实,有时候就有这个需求,针对特定的路径做匹配,然后跳转/返回对应的404、403...等等。

但是如果不是经常有去接触Nginx的语法的话,说实话要想一下子写出来还是挺浪费时间的,我遇到的Nginx直接用并(&&)是不行的,非常尴尬,因为我想着一般的语言都有这样的关键词,应该是可以的,然而不行就是不行,随即就换了种写法。

还有Nginx的内置变量不太熟悉,然后就是变写变搜索引擎了,哈哈,所以真的有必要记录下,下面是我最近写的一个针对特定路径/设备对相应处理的部分代码如下:

set $flag 0;
#判断是否含有特定路径
if ($request_uri ~* "(/特定路径1|/特定路径2)") {
	set $flag "${flag}1";
}
#判断用户代理不是PC端
if ($http_user_agent !~* "(Android|iPhone|Windows Phone|iPad|webOS|BlackBerry|mobile|Baiduspider)") {
	set $flag "${flag}2";
}
#当上面的两个条件都满足的话即返回对应的HTTP状态码403
if ($flag = "012") {
	return 403;
}

相关文章

各大搜索引擎蜘蛛Header头中的User-Agent字段信息大全

本文地址:https://www.yerenwz.com/5970.html
版权声明:本文为原创文章,版权归 野人 所有,欢迎分享本文,转载请保留出处!

发表评论