如何在动态站点上禁用PHPSESSID


How to disable PHPSESSID on dynamic sites?

我已经检测到我的服务器使用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'])