Warning: Undefined variable $ex_word in /www/wwwroot/yunfuwuqi.chinazhx.cn/wp-content/themes/lsw_FB6LDT/lsw/functions.php on line 133
Warning: Undefined variable $case in /www/wwwroot/yunfuwuqi.chinazhx.cn/wp-content/themes/lsw_FB6LDT/lsw/functions.php on line 133
Warning: Undefined variable $ex_word in /www/wwwroot/yunfuwuqi.chinazhx.cn/wp-content/themes/lsw_FB6LDT/lsw/functions.php on line 134
Warning: Undefined variable $case in /www/wwwroot/yunfuwuqi.chinazhx.cn/wp-content/themes/lsw_FB6LDT/lsw/functions.php on line 134
Warning: Undefined variable $case in /www/wwwroot/yunfuwuqi.chinazhx.cn/wp-content/themes/lsw_FB6LDT/lsw/functions.php on line 136
Warning: Undefined variable $ex_word in /www/wwwroot/yunfuwuqi.chinazhx.cn/wp-content/themes/lsw_FB6LDT/lsw/functions.php on line 138
很多时候我们需要对网站做一些措施, 比如同一个ip不能一次性访问太多次, 我们可以限制一个ip同一个时间段访问的次数. 这里是访问60秒也是一分钟
1、把下面的代码添加到模板函数文件functions.php,这里我们禁止了国内比较常见的一些蜘蛛比如,baidu,sogou,bing等蜘蛛.
//同一个ip只允许访问5次 function limit_requests_per_minute() { // 获取用户代理标头 $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; // 常见国内搜索引擎蜘蛛的用户代理字符串 $china_spiders = array( 'Baiduspider', '360Spider', 'Sogou web spider', 'YoudaoBot', 'Sosospider', 'bingbot', 'SMJB', // 添加其他蜘蛛的用户代理字符串 ); // 检查用户代理标头是否包含蜘蛛标识 foreach ($china_spiders as $spider) { if (stripos($user_agent, $spider) !== false) { // 如果是蜘蛛访问, 则不进行IP限制 return; } } // 如果不是蜘蛛访问, 继续进行IP限制检查 if (isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; $requests = get_transient('ip_request_count_' . $ip); if (false === $requests) { $requests = 0; } $requests++; set_transient('ip_request_count_' . $ip, $requests, 60); // 60秒内 if ($requests > 5) { header('HTTP/1.1 403 Forbidden'); die('Forbidden'); } } } add_action('init', 'limit_requests_per_minute');
2、保存后我们在网站随机访问5个链接试试
3、如果你需要自己修改, 我们可以修改这里的数字
3.1、set_transient(‘ip_request_count_’ . $ip, $requests, 60); // 60秒内if ($requests > 5)
3.2、60代表60秒也是一分钟, 比如5分钟那么就是300秒
3.3、if ($requests > 5是页面你可以修改10或者更多