我有两个不同的域,名为 http://sample.com和 http://example.com . CAKEPHP开发的示例网站和corephp开发的示例网站。如果我要登录到 example.com,这个 session 应该与 cakephp session 匹配。 如果我登录了网站的任何人,它将对两者都起作用。 这可能吗。请建议我最好的锻炼方法。
提前致谢。
最佳答案
有一种在单个服务器上运行不同站点/域的常用技术,称为 vhosts。由于您可以为每个虚拟主机指定 session 路径,因此也可以为所有虚拟主机定义相同的路径,这将导致共享 session 。在项目 A 中创建的 session 随后也可在 session B 中使用,反之亦然。
如果您使用纯 PHP、CakePHP 或其他任何东西,vhosts 并不关心。 session 就是 session 。
您需要的 vhost 规则是(注意 session 文件夹在两个定义中是相同的):
<VirtualHost *:80>
ServerName www.sample.com
DocumentRoot /var/www/xxx1
<Directory "/var/www/xxx1">
AllowOverride All
php_value session.save_path "/var/mysessionfolder"
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/xxx2
<Directory "/var/www/xxx2">
AllowOverride All
php_value session.save_path "/var/mysessionfolder"
</Directory>
</VirtualHost>
要获得更多信息,阅读此主题可能会有用:How to prevent PHP sessions being shared between different apache vhosts?它问你想要的相反。
关于php - 使用具有两个不同域的 cakephp session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18187658/