当从 ZF 发送以下错误消息的 googlebot 调用时,我的应用程序抛出 Zend_Locale_Exception
:
Autodetection of Locale has been failed!
问题可能是因为没有设置默认语言环境,但我该如何调试呢?
由于 google bot 不是实时的,我需要实际伪造 bot 发出的 HTTP 请求,但我怎样才能知道这个请求是如何发出的?
尝试使用 curl 发送 Accept-Language header 不会重现错误:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.mysite.com.br/');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Language'));
echo $data = curl_exec($ch);
curl_close($ch);
编辑:
进一步澄清:
- 我知道问题可能是缺少默认语言环境,但我需要对此进行调试
- 更改我的浏览器的用户代理不起作用,它只会更改 UA 字符串,区域设置仍然从我的浏览器发送
最佳答案
Google 网站站长工具中有一个“Fetch as Googlebot”功能。您也许可以使用它来触发机器人访问您的网站。您甚至可以临时将一个 phpinfo()
页面添加到您的站点并使用该功能点击它,这将列出它显示给您的响应中的所有 header 。
关于php - 如何调试仅在(谷歌)机器人请求页面时发生的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108109/