最近做了一个搜索记录功能,用于搜集用户的喜好,结果发现经常有莫名其妙的搜索记录,每天大概有1000多次的搜索量,WordPress自带的搜索非常耗资源,打开网站日志发现,发现很来自国外的垃圾营销蜘蛛SemrushBot的搜索,在宝塔防火墙中屏蔽IP也无效,网上找了一下,现成的代码:
#禁止垃圾蜘蛛抓取 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 444;}
以宝塔为例,将上代码加到站点配置文件,最后一个 }
前面。
当这些垃圾蜘蛛访问网站,只能得到444 没有任何数据。
再加个当链接中包含/search/重定向到其它页面。
代码添加到主题函数模板中:
// 当URL包含 /search/重定向 add_action('template_redirect', 'custom_search_redirect'); function custom_search_redirect() { // 获取当前请求的URL $request_url = $_SERVER['REQUEST_URI']; // 检查当前URL是否包含 /search/ if (strpos($request_url, '/search/') !== false) { // 如果是,则进行重定向到其他页面 wp_redirect('https://www.pcppp.com/'); //wp_redirect(home_url('/new-page/'), 301); exit(); } }
观察一段再说吧,估计还是不能完全拦截。
2024年4月27日补充,最佳设置方案: