下面事一些伪装运用的典型场景:
1、将图像表现为文本
2、将排除的内容重定向到非排除的地方
3、将基于订阅的内容只提供给蜘蛛(如New Yerk Times)
4、使用伪装对蜘蛛禁用基于URL的会话处理(Trans_sid)
将图像表现为文本
不幸的事,正如第6章所讨论的,使用包含文本的图像,对搜索引擎优化而言事有害的。原因很简单,因为搜索引擎不会读取图像中包含的文本
。因此伪装的一个明显用途就是,如果用户代理是蜘蛛,就将图像替换成文本。使用本章中的伪装工具集,可以如下实现:
require_once(include/simple_cloak.inc.php);
if(simplecload::isspider())
{
echo'wacky widget model xx';
}
else
{
echo '<img sec="images/wacky-widget-model-xx.gif">';
}
但是请注意,对这个问题的文本标题而言,SIFR可能是个更好的解决方案,因为他不会遇到伪装那种风险。SLFR在第6章中有详细讨论。
重顶向排除内容
正如第5章所讨论的,如果你有个产品同时放在3个种类中,那么可能就会导致3个不同的URL,却多余两个基本上完全一样的页面。这就是基本的重复内容问题。在第3章中,我们提出“主要种类”的概念,然后使用robets.txt或meta-exclusion来将非主要页面排除,使用伪装时,当用户代理事蜘蛛,则将全部非主要页面301重定向到主要页面即可。
这个实例在第14章的示例电子商务商店中演示。
将基于订阅的内容只提供给蜘蛛
这就是New York Times的示例。在这个情况下,代码需要检测用户代理是否事蜘蛛。如果用户代理事人类,那么相应内容的一部分;如果事蜘
蛛,那么相应全部内容。使用本章中的伪装工具集,可以如下实现:
if(simplecload::isspider())
{
echo $content;
}
else
{
echo substr($cibtebt,0,100);
}
对蜘蛛禁用基于URL的会话处理
正如第5章所讨论的,PHP的trans_sid特性能够对URL进行自动修改以包含会话变量,这对于那些不支持COOKIES的用户保持会话状态非常有用。
但是,它也有另一方面的问题,有可能向蜘蛛发送额外的大量重复内容。因此,现在很多WEB站点将这个特性关闭了。
但是,由于这个特性可以在PHP代码中动态地开启或关闭,伪装就可以根据访问者是人类还是搜索引擎蜘蛛,来动态的开启或关闭它。者就让站
点既可以把这个特性提供给用户,又可以不这与让蜘蛛访问时得到一大批无语法含义的URL变量(包含了不同的会话ID)。使用本章中的违章工具集,可以如下实现:
提示:
这段代码应该放置在PHP脚本顶部,位于任何包头或发送给客户的输出之前。
if (simplecloak::isspider())
{
ini_set('session.use_trans_sid',0);
}
else
{
ini_set('session.use_trans_sid',1);
}
session_start();
很明显,你的站点必须禁止会话的使用,因为搜索引擎也是不会接受COOKIES的。
其他伪装实现前面的伪装实现,只要将源代码添加到自己的应用程序中即可运行,并且可以按照自己的想法修改它。如果不想修改,还有伪装工具拒绝集能够用于向不同的用户代理提供动态的不同内容,这种工具集之一是来自VOLATILE GRAPHIX,INC的KLOAKLT,从http://www.kloakit.com可以得到。它在编写时使用了同样的Dan Kramer提供的伪装数据。