Googlebot抓取网站时禁用会话

时间:2014-01-22 08:16:22

标签: php session googlebot google-search-appliance

我的PHP 5.3服务器使用use_only_cookies dans处理会话而没有use_trans_id,会话文件保存在专用目录中。

当Googlebot或Google Search Appliance僵尸程序或任何其他非Cookie支持的浏览器抓取网站时,会为每个请求的页面创建不同的会话文件。我担心这些文件会毫无用处地使用大量空间磁盘。

是否可以为某些用户代理或不使用cookie的浏览器禁用会话文件?我不想用trans_id功能替换会话,因为它可能有SEO缺点。

是否有Apache / PHP指令,设置或任何其他技巧可以产生以下行为:

  • 如果浏览器不支持cookie(通过用户代理黑名单或其他方法),那么我们总是使用相同的会话文件,或者我们根本不使用会话文件
  • 对于任何其他浏览器,请使用标准会话文件处理程序。

2 个答案:

答案 0 :(得分:1)

当然,您可以检查$_SERVER['HTTP_USER_AGENT']的内容并检查已知的机器人。如果它是一个僵尸程序,那么就不要调用session_start()(尽管如果你的逻辑依赖于代码中的$_SESSION变量,也可能会产生不良影响。)

答案 1 :(得分:1)

if (strpos($_SERVER[‘HTTP_USER_AGENT’],"Googlebot") === false) { session_start(); }

但我不确定它是否值得。会话GC非常有效,如果有人将用户代理覆盖到googlebot,他将没有会话