我们在工作时在这里安装了Drupal7的MU(多站点),并且正在尝试 暂时阻止我们收到的机器人群,直到我们有机会加载我们的 内容。如果我们在Xpath中找到某个 条件(如果DOM没有形成,这也可以作为strpos/preg_match来完成),我写了一个快速且脏的脚本来发送503头文件。在页面加载前捕获Drupal7 DOM内容进行比较
为了让球滚动,虽然我需要通过之前的过滤器,以找出如何可以
A)劫持Drupal7引导,并通过该过滤器拉下面
B中的所有内容)使用ob_flush内容内容加载
值得一提的我们使用一个被称为域访问模块,我相信 使我在首位这个疯狂的追逐。我知道这样一个事实,它沾染了 与相当多的文件...
我遇到的问题是确切地搞清楚我在哪里可以赶上内容 在?应该可以将流推入一个变量,然后释放它,正确吗?我认为Drupal7中的index.php会成为犯罪嫌疑人,但我对我在哪里或如何捕获内容感到困惑。这里的脚本, ,希望有人能指出我在正确的方向。
//error_reporting(-1);
/* start query */
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->Load($_SERVER['PHP_SELF']);
$xpath = new DOMXPath($dom);
//if this exists we aren't ready to be read by bots
$query = $xpath->query(".//*[@id='block-views-about-this-site-block']/div/div/div");
//or $query = 'klat-badge'; //if this is a string not DOM
/* end query */
if(strpos($query) !== false) {
//require banlist
require('botlist.php');
$str = strtolower('/'.implode('|', array_unique($list)).'/i');
if(preg_match($str, strtolower($_SERVER['HTTP_USER_AGENT']))) {
//so tell bots we're broken
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
exit;
}
}
这给了我一个很好的起点,还有值得一看的东西,谢谢。 – ehime
由于某种原因,我无法获取模块捕获内容=(是否有我应该寻找的变量或某个应该缓冲的流? – ehime