一个Symfony应用程序与多个域


One Symfony app with multiple domain

我有一个Symfony2应用程序,只在1台服务器上,但因为它是国际化的,我有多个域名(不是子域名)。我想实现的是,如果用户更改了他的语言,我将重定向到另一个主机,并且用户应该已经登录到另一个语言环境。

我有两个独立的域名,像book.com和buch.de。最初的问题是,用户登录到book.com,在那里他将语言更改为德语,所以我想将他重定向到buch.de,但由于另一个域名,用户将获得一个新的cookie,他将不再登录。

您需要在路由配置中使用host参数:

homepage:
    path:     /
    host:     "example.{national_domain}"
    defaults: { _controller: AcmeDemoBundle:Main:Homepage }

那么您需要在每个URL生成中传递此national_domain参数。我认为你可以编写一些侦听器来自动完成。

要在域之间"共享"cookie,您需要一个域作为主域并进行单点登录。它将拥有所有需要的cookie,并且您将能够将用户从这个主域重定向到国家域,并使用一些包含所有所需信息的GET参数。

Symfony的单点登录实现之一,您可以在这里找到。