虽然这看起来应该很简单,但我无法配置 apache,以便 googlebot 的请求不会存储在访问日志中。我尝试了以下几行:
SetEnvIfNoCase User-Agent googlebot dontlog
BrowserMatchNoCase googlebot dontlog
CustomLog "/foo/bar/access_log" combined env=!dontlog
添加它们后我重新启动了 apache,但日志仍然记录了所有 google bot 的请求。我的理解是 SetEnvIf User-Agent 和 BrowserMatch 做同样的事情。我试过了每一个,但都没有用。
答案1
找到您怀疑是 Googlebot 的日志条目并记下其 IP 地址。
接下来使用以下命令查找该 IP 地址:
host 66.249.64.156
不要忘记用此命令替换您之前记录的 IP 地址。
如果结果看起来像这样,那么您就知道这是 Googlebot。您要确保它以以下内容结尾googlebot.com
:
156.64.249.66.in-addr.arpa domain name pointer crawl-66-249-64-156.googlebot.com.
接下来,转到您的 Apache2 虚拟主机并添加适合您网站的以下指令:
SetEnvIf Remote_Addr "66.249.64.156" AND User-Agent "Googlebot" do_not_log
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!do_not_log
您可以对 bingbot 重复此过程:
host 157.55.39.247
条目应该以search.msn.com
这样的形式结尾
247.39.55.157.in-addr.arpa domain name pointer msnbot-157-55-39-247.search.msn.com.
因此,您需要在 Virtualhost 文件中的 Googlebot 行后添加额外的行:
SetEnvIf Remote_Addr "157.55.39.247" AND User-Agent "bing" do_not_log
通常 Googlebot 和 MSN bot 会使用相同的 IP 来检查您的页面,但如果不是,您可能需要添加其他条目。您可能只是为了"^66"
方便而使用。
https://support.google.com/webmasters/answer/80553
https://blogs.bing.com/webmaster/2012/08/31/how-to-verify-that-bingbot-is-bingbot/