一些像Bingbot这样的search引擎蜘蛛爬得太快,似乎不遵守robots.txt crawl-delay
指令。 这触发了mod_evasive
的DOS防御机制来生成HTTP 403禁止的错误。 但是对于完全有效的页面显示403错误是不理想的并且可能影响页面等级。 有没有办法configurationmod_evasive
显示HTTP状态429而不是403?
429太多的请求
429状态码表示用户在给定的时间内发送了太多的请求(“速率限制”)。
响应表示应该包括解释条件的细节,并且可以包括一个Retry-After标题,表示在发出新的请求之前等待多长时间。
基本上你只要将mod_evasive20.c中的HTTP_FORBIDDEN改为HTTP_TOO_MANY_REQUESTS并重新编译即可。
我分叉mod_evasive和响应状态configuration(以及一些其他function),检查出来: https : //github.com/jvdmr/mod_evasive
要进行configuration,请安装新版本并将DOSHTTPStatus 429
添加到您的configuration中(全局或在要保护的虚拟主机中)。