我有一个多语言网站(阿拉伯语和英语)的2个子域,1个子域位于不同的服务器上。
member.example.com for centralizer login on SERVER1
video.example.com for videos on another server SERVER2
我用:
session_name('example');
session_set_cookie_params(0, '/', '.example.com');
session_start();
所有会话数据都在子域中可用,但问题是LANGUAGE。
如果用户打开video.example.com并将语言更改为ARABIC并访问member.example.com,他将看到英文版的member.example.com页面。虽然他来自ARABIC界面。
有任何建议可以解决此问题,谢谢。
我使用Session来存储语言。
答案 0 :(得分:1)
这实际上取决于您存储会话数据的方式。在PHP中,默认情况下,数据存储在本地计算机上的文件中。这意味着在每台计算机上,用户将拥有唯一的,不同的会话文件。为了使会话数据真正在两台机器上保持不变,它们需要存储在第三个位置。这可能是一个Memcached服务器,一个数据库等。这样,当会话在一个位置被更改时,它会在所有访问会话数据的服务器上得到普遍改变。
您可以查看php会话处理程序页面以获取更多信息:http://www.php.net/manual/en/book.session.php
您还可以在此处找到有关将Memcached用作会话处理程序的信息:http://php.net/manual/en/memcached.sessions.php
使用PHP,你也很容易自己动手。我编写了自己的数据来存储SQL Server数据库中的数据来处理负载均衡器背后的事情。像魅力一样。