我有一个具有用户跟踪功能的电子邮件营销网站,这通常是我所做的。 我要求我的客户将此代码添加到他们的网站以跟踪他们客户的行为。
var _ssprt=('https:'==document.location.protocol?'https':'http');
var ig = navigator.userAgent.toLowerCase().indexOf('googlebot') > 0;
document.write('<img height="1" width="1" src="'+_ssprt+'://www.myurl.com/system/sitecode.php?t='+document.title+'&adres='+document.location.href+'&ua='+ig+'" hspace="0" />');
通常如果通过浏览器进入网站,我可以很容易地检测到它的用户代理。
但是,如果这是 GoogleBot ,因为它将网站作为源代码执行,它不会向我的主 url 发送任何数据。 它也不能执行php。 因此,我看不到是否有任何 googlebot 进入该网站。
我使用这段代码来获取用户代理
var ig = navigator.userAgent.toLowerCase().indexOf('googlebot') > 0;
我想我可以通过 htaccess 将我的 sitecode.php 重定向到 js。 所以它将表现为 sitecode.js,我将把它包含在 script src code
中我想知道如果我这样做了,googlebot 会执行那个 JS。
我正尝试用这段代码来做这个,但我没能成功。此外,我不确定 Google 是否会执行此操作并将用户代理数据发送给我。
RewriteEngine on
RewriteRule ^sitecode.js$ sitecode.php [QSA,L]
最佳答案
我的疑问是您确实想要检测您网页上的 GoogleBot 命中?或者至少检测它们以便您可以在自己的代码中过滤掉它们?
GoogleBot 可以插入一些 JavaScript,但它不会将其作为浏览器执行。在解释脚本方面,谷歌对 GoogleBot 的所作所为保持沉默。当用户禁用 JavaScript 时也存在同样的问题,那么您将看不到他们的访问。
有很多方法可以制作AJAX content crawlable由 GoogleBot,但它也需要一些服务器代码。
不幸的是,确保跟踪所有访问者的最安全方法是使用服务器端代码。
可选 - 我建议这样做有一些保留,因为我自己没有尝试过 - 你可以尝试在你这边添加一个 img 或一个隐藏链接到你的 php 页面,然后检查用户代理和引用以获取页面用户正在访问 - 但我不完全确定它是否以这种方式工作以及 GoogleBot 是否会发送引用 header 。也许其他人已经尝试过了?
关于javascript - 如何执行 Javascript 代码以获得用户代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19354076/