我在 Windows 7 (x64) 上使用 Apache 2.4.4 和 PHP 5.4.14。我遇到的问题是 php 会话不坚持。这也发生在 Apache 2.2 和 PHP 5.4.4 上,昨天更新,希望它只是一个糟糕的设置php.ini
,但没有任何改变。
在 chrome 中,只有当我使用重写规则时,每个页面的会话 id 都会发生变化。当使用重写规则时,cookiepath
会奇怪地更改为/pages_name/
而不是保留/
。
在歌剧中,即使我刷新页面,会话 ID 也会发生变化。在 IE 中也是如此。
在这两种情况下,浏览器都接受 cookie。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?page=$1&info1=$2&info2=$3 [L]
RewriteRule ^([a-zA-Z]+)/([a-zA-Z0-9]+)/?$ index.php?page=$1&info1=$2 [L]
RewriteRule ^([a-zA-Z]+)/?$ index.php?page=$1 [L]
搜索后,我遇到了一些“解决方案”,但都没有奏效
会话保存路径正在工作,正在写入文件。使用默认会话处理程序。
环境session.cookie_path
为/
环境session.cookie_lifetime
为其他0
我没有使用session_regenerate_id
session_start( );
是所有页面的第一行代码
如果需要更多信息,我会更新这篇文章,谢谢。
在进一步研究中,它被证明是一个问题RewriteRule
s 的一个问题,不知道如何解决它。
来自的 cookiesession_start( )
也设置localhost/home/
为好像,它是一个文件夹,但它是一个变量localhost/index.php?page=home
。正因为如此,每一页都有自己的session id
,有什么解决办法吗?