使用nginx屏蔽搜索引擎访问phpcms和PBootCMS程序中的搜索模块
编者按:
站内搜索是给“人”用的功能,不是给“搜索引擎”看的内容。让爬虫抓取搜索结果页,就像把图书馆的“检索终端屏幕截图”当成正式出版物提交给国家图书馆——不仅无用,还会污染整个系统。同时还可降低搜索引擎无效访问搜索模块带来的带宽占用。站内搜索是给“人”用的功能,不是给“搜索引擎”看的内容。
让爬虫抓取搜索结果页,就像把图书馆的“检索终端屏幕截图”当成正式出版物提交给国家图书馆——不仅无用,还会污染整个系统。同时还可降低搜索引擎无效访问搜索模块带来的带宽占用。下面给出实现代码:
# 屏蔽爬虫访问 PHPCMS (m=search) 和 PBootCMS (keyword=) 搜索接口
if ($args ~* "(m=search|keyword=)") {
set $block_search 1;
}
# 匹配常见爬虫/自动化工具特征(不区分大小写)
if ($http_user_agent ~* "(bot|spider|crawler|crawl|slurp|wget|curl|python|java|httpclient|scrapy|puppeteer|headless|selenium|fetch|scan|spider|spider)" ) {
set $block_search "${block_search}1";
}
# 如果两个条件都满足(URL 含搜索参数 + 是爬虫),则拦截
if ($block_search = "11") {
return 410;
}
本文标签:
