php - 多语言网站和机器人检测

标签 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” header 检测用户语言。

如果是机器人,如何安全检测?我阅读了有关此事的旧主题,但人们只是使用“接受语言”,因为机器人没有发送此 header ,但是,到目前为止,谷歌发送此 header ...

检测它是否是机器人更安全,还是相反,检测它是否是网络浏览器更安全? 因为如果未检测到机器人,网站将以错误的语言编入索引。

想法?

最佳答案

假设您使用的是 PhP,您可以请求 HTTP_USER_AGENT 并查看用户代理是否为“googlebot”。

if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot"))
{
    // what to do
}

这是一个问题的链接(以及我从中提取的示例)。

how to detect search engine bots with php?

关于php - 多语言网站和机器人检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39644655/

相关文章:

php - 错误 : Unable to find the controller for path "/login_check". 路由配置错误。 (LexikJWTAuthentication)

php - 错误 "End tag fieldset seen, but there were open elements.”

javascript - 在滚动到站点时添加移动效果

php - 显示类别的产品

php - Yii 框架 undefined variable $model

regex - 为什么正则表达式在 NodeJs 中不起作用

html - 放大时(ctrl+,ctrl-)我的导航栏不会一起去?

c++ - Python服务器脚本与C程序通信报错

javascript - 动态比较两个 Arrays.map 值

node.js - 运行 'The "时如何修复 : 'vue add vuetify' path"argument must be of type string. 接收类型未定义'