1、根据特定的 http_referer 实现跳转
在配置文件的 server {} 中加入如下配置:
if ($http_referer ~* "www.baidu.com") {
rewrite ^/(.*)$ http://www.onephper.com redirect;
}
说明:这个意思就是从百度点击过来的请求跳转到指定网址,那个 http_referer 可自行 DIY。
2、屏蔽特定的 http_referer
在配置文件的 server {} 中加入如下配置:
if ($http_referer ~* "www.baidu.com") {
return 403;
}
说明:这个意思就是从百度点击过来的请求一律返回 403 错误。
3、屏蔽多个http_refer
if ($http_user_agent ~* (SemrushBot|python|Linespider|crawler|DingTalkBot|simplecrawler|ZoominfoBot|zoombot|Neevabot|coccocbot|Facebot|YandexBot|Adsbot|DotBot|Applebot|DataForSeoBot|MJ12bot|BLEXBot|trendictionbot0|trendictionbot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) {
return 403;
}
注意事项:
1、nginx语法if后需要跟一个空格
2、符号解释
= 开头表示精确匹配
^~ 开头表示url以某个常规字符串开头,理解为匹配url路径即可,nginx不对url做编码,因此请求为/static/20%/aa,可以被规则 ^$ /static/ /aa 匹配到
~ 区分大小写的正则匹配
~* 不区分大小写的正则匹配
!~ !~* 区分大小写不匹配及不区分大小写不匹配的正则
/ 通用匹配,任何请求都会匹配到
结束语
本文有任何错误,或有任何疑问,欢迎留言说明。
网友最新评论