基于用户代理检测的标头重定向可能会很快失控。多年来我继承的很多网站都有大量.htaccess
文件会减慢服务器连接速度。对于未来的校对,您可以从一系列搜索开始检查(有点像黑名单)。我通常将我的存储在数据库中。这是一个使用相同功能的 user_agents 和 ip_addresses 的示例。
<?php
//user agent blacklist array
$uab = array(
'!^$!','!CaptiveNetworkSupport!','!curl!i'
);
//User agent handling array
$uah = array(
'HTTP/1.0 400 Bad Request','HTTP/1.0 400 Bad Request','HTTP/1.0 403 Forbidden',
);
$ipb = array(
'!^1\.2\.3!',
'!^8\.8\.8\.8!',
'!^199\.21!',
'!^0\.0\.0\.0$!',
);
$iph = array(
'Location: /no-bots.php',
'Location: /warning.php',
'HTTP/1.0 403 Forbidden',
'HTTP/1.0 403 Forbidden',
);
function blackList($blacklist,$handler,$means){
foreach($blacklist as $key=>$bl){
if (preg_match($bl,$means)){
header($handler[$key]);
exit();
}
}
}
if(!empty($_SERVER['HTTP_USER_AGENT'])){
$user_agent = $_SERVER['HTTP_USER_AGENT'];
} else {
$user_agent = '';
}
blackList($uab,$uah,$user_agent);
//This should always be set!
if(!empty($_SERVER['REMOTE_ADDR'])){
$ip_address = $_SERVER['REMOTE_ADDR'];
} else {
$ip_address = '0.0.0.0';
}
blackList($ipb,$iph,$ip_address);
?>
在我的自定义 CMS 中,我有一个禁止页面,允许后端用户确定罪犯如何受到惩罚或对待。它对于阻止各种事情很有用,最好与 iptables 结合使用。