NGINX 屏蔽指定的http_referer

ixibei 发表于 分类:Nginx 阅读(675) 评论(0)

简介:

1、根据特定的 http_referer 实现跳转在配置文件的 server {} 中加入如下配置:if ($http_referer ~* "www.baidu.com") {   &nb…

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 匹配到

    ~      区分大小写的正则匹配

    ~*      不区分大小写的正则匹配

    !~ !~*    区分大小写不匹配及不区分大小写不匹配的正则

    /       通用匹配,任何请求都会匹配到


结束语

本文有任何错误,或有任何疑问,欢迎留言说明。

本站文章除注明转载外,均为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。

http://www.onephper.com/archive/56.html

相关推荐

评论

回复给XXX取消回复

说点什么吧...

网友最新评论

输入关键字