Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多语言网站与bot检测_Php_Node.js_Web_Seo_Web Crawler - Fatal编程技术网

Php 多语言网站与bot检测

Php 多语言网站与bot检测,php,node.js,web,seo,web-crawler,Php,Node.js,Web,Seo,Web Crawler,我有一个网站,我实现多语言 我将我的语言划分为每个子域 fr-fr.mywebsite.com es-es.mywebsite.com www.mywebsite.com // root domain => neutral language for bots 在子域上,如果未设置语言cookie,我将子域用作语言代码 在主域(www)上,如果未设置语言cookie,则: 如果是机器人,我用中性语言 如果它不是机器人,我会使用“accept language”头检测用户语言 如何安全地

我有一个网站,我实现多语言

我将我的语言划分为每个子域

fr-fr.mywebsite.com
es-es.mywebsite.com
www.mywebsite.com // root domain => neutral language for bots
在子域上,如果未设置语言cookie,我将子域用作语言代码

在主域(www)上,如果未设置语言cookie,则:

  • 如果是机器人,我用中性语言
  • 如果它不是机器人,我会使用“accept language”头检测用户语言
如何安全地检测它是否是机器人?我读过关于这个问题的老话题,但人们只是使用“接受语言”,因为机器人没有发送这个标题,然而,到目前为止,谷歌发送这个标题

检测它是否是机器人更安全,或者检测它是否是web浏览器更安全? 因为如果没有检测到bot,那么将使用错误的语言对网站进行索引


想法?

假设您使用的是PhP,您可以请求HTTP\u USER\u代理并查看该用户代理是否为“googlebot”

if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot"))
{
    // what to do
}
下面是一个问题的链接(以及我从中提取的示例)


为什么不使用语言注释?通过这种方式,机器人将找到我也使用的其他语言页面。但是主域必须自动检测用户语言:)Hi@Ndrou,我仍然不明白为什么您需要查找用户是否是bot,如果请求具有有效的“accept language”头,您可以将其发送到适当的语言站点,如果不是,则发送到您的主或默认语言站点,如果是bot,他将能够使用语言注释找到所有altenate语言,并将它们编入索引是的,但不仅仅是谷歌机器人,还有许多机器人,如雅虎、必应、yandex等。。。如何确保不会忘记一个?你可以添加所有这些机器人的名字,只需谷歌和查找机器人的名字。您还可以添加一个日志,只需记录
HTTP\u USER\u AGENT
值,然后对列表进行排序,查看是否出现了类似bot的名称。所有著名的搜索引擎和合法的将命名他们的机器人。