我的PHP5.3服务器正在使用use_only_cookies dans处理没有use_trans_id的会话,会话文件保存在一个专用目录中。
当Googlebot或或任何其他非cookie支持的浏览器爬行网站时,将为每个请求的页面创建一个不同的会话文件。我担心这些文件将免费使用大量的空间磁盘。
是否可以禁用某些用户代理或不使用cookie的浏览器的会话文件?我不想用trans_id功能代替会话,因为它可能有SEO的缺点。
是否有Apache/PHP指令、设置或任何其他技巧来具有以下行为:
发布于 2014-01-22 08:25:01
当然,您可以检查$_SERVER['HTTP_USER_AGENT']
的内容并检查已知的机器人。如果它是一个机器人,那么就不要调用session_start()
(尽管如果您的逻辑依赖于代码中的$_SESSION
vars,这也会产生不想要的效果)。
发布于 2017-11-29 10:52:15
if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), "googlebot")){
$sid = md5("mygooglebotsessionid");
session_id($sid);
}
将其添加到session_start()之前;
您可以为机器人设置唯一的SessionID,而不是禁用用于机器人的会话。每次机器人使用相同的SessionID,所以它不会浪费您的会话存储。
PS:不确定SEO的缺点。
发布于 2014-01-22 15:19:20
if (strpos($_SERVER[‘HTTP_USER_AGENT’],"Googlebot") === false) { session_start(); }
但我不确定这是否值得。会话GC非常有效,如果有人将用户代理重写为googlebot,他将不会有会话。
https://stackoverflow.com/questions/21277534
复制相似问题