谷歌遵循重定向并忽略构造?

时间:2012-08-27 07:54:15

标签: php redirect google-plus

在我的网站中,我有一个重定向通过标题(“位置”),只有当用户登录时才会执行,重定向到登录表单。我在这个网站上有一个谷歌+按钮,谷歌总是遵循重定向。我无法理解为什么?

当我删除此重定向时,一切都很好。我试过这段代码:

if (!$user->user_exists && !getIsCrawler($userAgent)) {
header("Location: login.php"); }

要检测爬虫我使用此功能:

$userAgent = $_SERVER['HTTP_USER_AGENT'];
function getIsCrawler($userAgent) { 
$crawlers = 'Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|' . 'AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|'
 .'GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby'; $isCrawler =
 (preg_match("/$crawlers/", $userAgent) > 0); return $isCrawler; }

我在这里做错了什么?我希望你们中的某个人有解决方案。

2 个答案:

答案 0 :(得分:0)

用户代理很容易被欺骗。因此,您可能需要小心处理代码的这一部分,并考虑重新评估它。

当您需要将内容放在付费专区后面或登录时,您应该查看Gus Class的文章,了解如何呈现必要的标记:http://gusclass.com/blog/2012/08/15/rendering-schema-org-markup-for-content-behind-a-paywall/

基本上将必要的数据传递到您的登录页面可能允许抓取工具仍然检索他们需要的元数据,同时使用登录保护您的网站。

答案 1 :(得分:0)

不幸的是,我认为不可能解决这个问题。众所周知,谷歌正在使用不同的用户代理(名称不明确),以检查向搜索引擎和普通用户显示不同内容的网页,或所谓的隐藏真实内容/门页。