我已经检测到我的服务器使用PHPSESSID通过谷歌网站管理员工具。自从我两周前检测到PHPSESSID以来,谷歌分析中显示的跳出率开始从大约2增加到75%。有了它,一大堆URL参数出现在我的网站上。我不能删除它们,我只能决定这些条目是否对我网站的行为有影响。我可以看到超过160个重复内容的重定向。我知道我可以使用以下条目:
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0
在.htaccess中防止PHPSESSID出现
然而,这并不能解决问题。因为我有一个动态的网站,我不能使用这个代码:
$actualurl= 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$correcturl = 'http://www.ragepank.com/articles/26/disable-phpsessid/';
if ($correcturl != $actualurl) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $correcturl);
exit();
}
在每个页面上设置以防止重定向访问者。如有任何意见,欢迎指教。
注:
自PHPSESSID以来跳出率从2到75%
听起来很奇怪。可能是脚本攻击。没有人会因为PHPSESSID而关闭一个网页。当你访问这个网站时,它会出现PHPSESSID吗?
查看这些网页的代码也做了PHPSESSID
添加到PHP文件顶部
<?php
ini_set('session.use_trans_sid', 0);
ini_set('session.use_only_cookies', 1);
?>
您似乎使用条件if ($correcturl != $actualurl)
来检测登录用户。不要这样做,只需使用在用户登录后设置的一些会话变量。那么你就不需要PHPSESSID在你的地址。
用户登录后:$_SESSION['logged_in'] = true;
你的新支票:if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'])