为什么我无法摆脱 Facebook 用户代理?
Why i can't get rid the Facebook user-agent?
我想使用一些 permalink slug,允许用户分享 link (url.com/artist/songtitle) 及其 Facebook 图片,url、描述等(将用户重定向到 url.com/#/artist/songtitle)。所以我决定向 Facebook 用户代理显示 OG 元并将其与重定向器分开。
但是,当我使用 Facebook Debug Tools and try to fetch it 时,问题就来了。爬虫没有被我的用户代理分隔符捕获。
我正在使用此代码来检测 Facebook 爬虫。有解决此问题的想法吗?
strpos($_SERVER["HTTP_USER_AGENT"], "facebookexternalhit/") || strpos($_SERVER["HTTP_USER_AGENT"], "Facebot"
您可能想要使用 stristr
或 regex
而不是 strpos
。现在,您的代码将不匹配 FacebookExternalHit
,因为它包含大写字母并且 strpos
函数是 CaseSenSiTive
.
Facebook 用户代理是:
FacebookExternalHit/1.0
FacebookExternalHit/1.1
facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)
facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
facebookexternalhit/1.0 (+https://www.facebook.com/externalhit_uatext.php)
facebookexternalhit/1.1 (+https://www.facebook.com/externalhit_uatext.php)
我正在使用下面的代码检测 PHP 中的 FB User-Agent,它按预期工作:
$agent = $_SERVER['HTTP_USER_AGENT'];
if(stristr($agent, 'FacebookExternalHit')){
//Facebook User-Agent
}else{
//Other User-Agent
}
更新:
为了知道 FB 正在使用哪些用户代理,请尝试将用户代理请求保存到一个文件中,即:
保存 UA 请求的示例代码:
创建一个名为 ua_log.txt
并具有 写入权限 .
的文件
<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
file_put_contents("$agent\n", "ua_log.txt", FILE_APPEND);
在 ua_log.txt
上使用 FB 用户代理 创建您的过滤器。
搞清楚。编写 og:url 元时要小心,爬虫会跟踪它。因此,请确保您在 og:url 中写入的页面是正确的。
我想使用一些 permalink slug,允许用户分享 link (url.com/artist/songtitle) 及其 Facebook 图片,url、描述等(将用户重定向到 url.com/#/artist/songtitle)。所以我决定向 Facebook 用户代理显示 OG 元并将其与重定向器分开。
但是,当我使用 Facebook Debug Tools and try to fetch it 时,问题就来了。爬虫没有被我的用户代理分隔符捕获。
我正在使用此代码来检测 Facebook 爬虫。有解决此问题的想法吗?
strpos($_SERVER["HTTP_USER_AGENT"], "facebookexternalhit/") || strpos($_SERVER["HTTP_USER_AGENT"], "Facebot"
您可能想要使用 stristr
或 regex
而不是 strpos
。现在,您的代码将不匹配 FacebookExternalHit
,因为它包含大写字母并且 strpos
函数是 CaseSenSiTive
.
Facebook 用户代理是:
FacebookExternalHit/1.0 FacebookExternalHit/1.1 facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php) facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) facebookexternalhit/1.0 (+https://www.facebook.com/externalhit_uatext.php) facebookexternalhit/1.1 (+https://www.facebook.com/externalhit_uatext.php)
我正在使用下面的代码检测 PHP 中的 FB User-Agent,它按预期工作:
$agent = $_SERVER['HTTP_USER_AGENT'];
if(stristr($agent, 'FacebookExternalHit')){
//Facebook User-Agent
}else{
//Other User-Agent
}
更新:
为了知道 FB 正在使用哪些用户代理,请尝试将用户代理请求保存到一个文件中,即:
保存 UA 请求的示例代码:
创建一个名为 ua_log.txt
并具有 写入权限 .
<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
file_put_contents("$agent\n", "ua_log.txt", FILE_APPEND);
在 ua_log.txt
上使用 FB 用户代理 创建您的过滤器。
搞清楚。编写 og:url 元时要小心,爬虫会跟踪它。因此,请确保您在 og:url 中写入的页面是正确的。