通过PHP检测用户代理的问题

时间:2014-05-08 16:50:26

标签: php wordpress user-agent

我正在使用this guide通过.htaccess和PHP脚本保护文件夹。

我们使用Google Search Appliance对此特定保护文件夹编制索引。但是,我不确定如何让爬虫通过。

为了测试,我使用firefox插件来伪造我的user_agent(在这种情况下为msnbot)并使用脚本echo $_SERVER['HTTP_USER_AGENT'],验证msnbot/1.1 (+http://search.msn.com/msnbot.htm实际上是我确定的UA。

这是身份验证脚本检查的条件字符串。所有这些条件都有效,除了最后一个。

current_user_can('edit_posts') || mm_member_decision( array ( "isMember"=>"true", "hasBundle"=>"1", "status" => "active" ) ) || auth_redirect() || ($_SERVER['HTTP_USER_AGENT'] == 'msnbot/1.1 (+http://search.msn.com/msnbot.htm)');

2 个答案:

答案 0 :(得分:1)

Google Search Appliance用户代理名为gsa-crawler

完整的用户代理字符串可能如下所示:

gsa-crawler (Enterprise; GID09999; name@company.com)

https://developers.google.com/search-appliance/documentation/614/help_gsa/crawl_headers

尝试允许该用户代理成功抓取。 而且由于您已经发现,单靠用户代理是不够的,请添加id和/或email的检查。

答案 1 :(得分:1)

想出来。 || auth_redirect()应该是有条件的最后一个。