如何configurationmod_evasive显示HTTP状态429而不是403?

一些像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中(全局或在要保护的虚拟主机中)。