首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能摆脱Facebook的用户代理?

为什么我不能摆脱Facebook的用户代理?
EN

Stack Overflow用户
提问于 2018-04-18 15:39:45
回答 2查看 886关注 0票数 0

我想使用一些permalink片段,允许用户与它的Facebook图片、url、描述等共享链接(url.com/ users /songtitle)(它将用户重定向到url.com/#/artist/songtitle)。因此,我决定向Facebook用户代理展示OG,并将其与重定向器分开。

但是,当我使用Facebook调试工具并尝试获取时,问题就出现了。爬虫没有被我的用户代理分离器捕获。

我正在使用这个代码来检测Facebook爬虫。有办法解决这个问题吗?

代码语言:javascript
复制
strpos($_SERVER["HTTP_USER_AGENT"], "facebookexternalhit/") || strpos($_SERVER["HTTP_USER_AGENT"], "Facebot"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-18 23:53:04

把它弄清楚。当你写og:url的时候要小心,爬虫们想要遵循它。所以,确保您用og:url编写的页面是正确的。

票数 0
EN

Stack Overflow用户

发布于 2018-04-18 15:45:46

您可能希望使用stristrregex而不是strpos。正如现在一样,您的代码将与FacebookExternalHit不匹配,因为它包含大写字母,而strpos函数是CaseSenSiTive

Facebook用户代理是:

facebookexternalhit/1.0FacebookExternalHit/1.1 FacebookExternalHit/1.0 (+uatext.php)

我使用下面的代码来检测PHP中的FB用户代理,它的工作原理如下:

代码语言:javascript
复制
$agent = $_SERVER['HTTP_USER_AGENT'];
if(stristr($agent, 'FacebookExternalHit')){
    //Facebook User-Agent
}else{
    //Other User-Agent
}

更新:

为了知道FB使用的是哪些用户代理,尝试将用户代理请求保存到文件中,即:

保存UA请求的示例代码:

创建一个名为ua_log.txt的文件,该文件具有写权限

代码语言:javascript
复制
<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
file_put_contents("$agent\n", "ua_log.txt", FILE_APPEND);    

使用FB用户代理 on ua_log.txt来创建过滤器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49903788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档