出于某种原因,我正在处理的项目的本地安装是将PHP会话ID添加到URL。这不会发生在任何其他服务器上。有没有我可以改变的设置来改变这个?我在Mac OS 10.8.2上使用PHP 5.4
示例网址:http://localhost/project/subfolder/index.php/admin/game?PHPSESSID=mhnpc0g2c8rijqpkf8lhpfshh7
应该是:http://localhost/project/subfolder/index.php/admin/game
更新:我已经检查了我的PHP.ini文件,并且我有以下设置正确,但我仍然在URL中获取会话ID。
session.use_cookies = 1
session.use_only_cookies = 1
session.use_trans_sid = 0
哦,好的,我在每次更改PHP.ini后重启Apache: - )
第二次更新:我的Mac上的其他地方可能隐藏了一个ini文件?梨可能搞乱这个吗?谢谢大家!
答案 0 :(得分:3)
检查你的php.ini文件,更具体地说是关于会话内容的部分。确保设置使用cookie而不是URL。
答案 1 :(得分:2)
您应该在php.ini
中设置如下:
session.use_cookies = 1
session.use_only_cookies = 1
session.use_trans_sid = 0
修改强>
这可以通过php本身使用ini_set
函数覆盖,也可以在.htaccess
文件中或使用php_flag
在apache虚拟主机的描述中覆盖。
找到问题的好工具是grep
实用程序。尝试使用它:
egrep -ir 'php_falg|ini_set' /etc/httpd/
在apache的配置文件中再次搜索相同的命令,但指向你的项目(如果它在.htaccess
文件中,在其他服务器上,虚拟主机配置为AllowOverride None
.htaccess
文件在那里不起作用)
egrep -ir 'php_falg|ini_set' ~/Sites/ # or in whathever path your site is.
答案 2 :(得分:1)
session.use_cookies = 1 session.use_only_cookies = 0 session.use_trans_sid = 1