最近网站被恶意搜索攻击,收到腾讯云的内容违规通知,内容如下:
这种恶意搜索攻击,其实非常简单,就是通过既定的网址结构不断对网站发起不良关键词搜索访问,比如 WordPress 的搜索网址结构为 域名/?s=搜索词,而且可能还会顺便将访问的地址推送到各大搜索引擎,加快这些恶意网址的收录。这样,你的网站就会沦为这些不法之徒传播不良信息的渠道,这对网站排名是非常不利的,甚至可能会直接被搜索引擎拉入黑名单。
解决方案如下:
1、禁止搜索引擎收录搜索结果页
搜索结果页一般我们都不推荐被收录,所以建议大家还是禁止收录。现在几乎所有搜索引擎都遵循 robots.txt 的规则,也就是我们可以通过 robots.txt 定义规则,阻止搜索引擎收录搜索结果页面。我们可以在网站根目录,创建一个 robots.txt 文件,填入下面的内容:
这样就禁止搜索引擎收录 WordPress 搜索结果页面。
2、在搜索结果为零时,跳转到首页
网上的做法都是直接禁用 WordPress 自带的搜索功能,只是其实这个自带的搜索功能还是蛮好用的,而且目前也没有对服务器造成很大的压力。我这边的想法是保留搜索功能,只是当搜索结果不存在的时候,自动跳转到首页。
目前测试到可行的办法是直接在主题的 functions.php 中增加如下代码:
曾经试过在主题的 content-none.php 中通过 wp_redirect 进行跳转,虽然可见内容不存在了,但是页面源代码中会出现搜索词标签,因此不可行。
测试代码:
也曾经测试过自定义 searchform.php ,也是存在上述问题。
自定义 404.php 是无效的。搜索关键词过滤又实在是太多了,还不如搜索不到结果就返回首页更简单。