服务器 WAMP 。我有2个sugarcrm站点,一个用于生产,在 www / folder1 保存,其他用于开发说保存在 www / folder2 。我正在使用IP地址访问它们(例如 66.102.0.0/folder1 和 66.102.0.0/folder2 )。浏览器为它们保存1个cookie(PHPSESSID)。如果我登录/退出到第一个站点,它也会影响其他站点。我可以在localhost创建子域,如 folder1.localhost 和 folder2.localhost ,但是如何基于IP的子域, folder1.66.102.0.0 和 folder2.66.102.0.0 (看起来很有趣:))?或者我可以为不同的文件夹使用不同的端口,例如 66.102.0.0:80 和 66.102。 0.0:8080 ?那么浏览器会保存2个cookie,如果端口在同一个IP地址上有所不同吗?我无法更改登录/注销,它的含糖量不是核心PHP。我可以使用不同的浏览器,但我的老板说要分开制作cookies。或者是否有任何基于文件夹分隔cookie的浏览器插件?
答案 0 :(得分:0)
致电session_set_cookie_params()
将Cookie限制为特定文件夹:
$params = session_get_cookie_params();
session_set_cookie_params($params['lifetime'], '/folder1');
session_start();
答案 1 :(得分:0)
是。创建子域应该可以解决您的问题。我一直这样做。
如果您以66.102.0.0
打开您的网站,那么您的会话将基于导致所有问题的网址。
注意:这里提到的目录是Windows wamp特定的,但只要找到合适的文件,这适用于所有操作系统中的Apache。
第1步。取消注释bin/apache/Apache*.*.*/conf/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
第2步。在bin/apache/Apache*.*.*/conf/extra/httpd-vhosts.conf
文件中创建虚拟主机条目。
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "D:/wamp/www"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/wamp/www/folder1"
ServerName folder1.localhost
ErrorLog "logs/folder1.localhost-error.log"
CustomLog "logs/folder1.localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/wamp/www/folder2"
ServerName folder2.localhost
ErrorLog "logs/folder2.localhost-error.log"
CustomLog "logs/folder2.localhost-access.log" common
</VirtualHost>
第3步。重启wampserver / apache。
第4步。编辑您的主机文件。 C:\Windows\System32\drivers\etc\hosts
添加条目。
127.0.0.1 folder1.localhost # You probably want 66.102.0.0 over here instead of 127.0.0.1
127.0.0.1 folder2.localhost