Symfony 2登录两个域

时间:2015-05-06 01:20:28

标签: php apache .htaccess symfony appdomain

我们正在运行一个Symfony 2.1应用程序,让我们说域名www.foo.com在那里登录根本不是问题。但我们有第二个网站www.bar.com,基本上只有www.foo.com/bar并且代理重写

RewriteCond %{HTTP_HOST} ^(www\.)?bar\.com$ [NC]
RewriteRule ^(.*) http://www.foo.com/bar$1 [L,P,NE]

除登录外,这也像魅力一样。我总是被重定向到www.foo.com/login,然后当然只为域www.foo.com设置了登录cookie。有没有办法告诉Symfony关于第二个域?

1 个答案:

答案 0 :(得分:2)

可悲的是,Symfony 2.1已经很老了,因此在升级之前,下面描述的功能将无法使用。 2.7将于月底发布,并且它是LTS版本,因此可能是这样做的好时机。

我相信您要寻找的是辅助站点的单独防火墙。在Symfony中,您可以通过主机名定义防火墙:

http://symfony.com/doc/current/cookbook/security/firewall_restriction.html#restricting-by-host

所以你可能有:

security:
    firewalls:
        foo_site:
            host: ^foo\.com$
            # ...
        bar_site:
            host: ^bar\.com$
            # ...

如果您想同时登录两者,则可以将防火墙的上下文设置为相同。默认情况下,上面两个防火墙的上下文将是foo_site和bar_site。虽然我不确定这是否可行,因为防火墙是由不同的主机定义的,因此会有不同的cookie。

以下是防火墙上下文参考的链接:

http://symfony.com/doc/current/reference/configuration/security.html#firewall-context

这是所有默认安全选项的链接。我发现在尝试查看可用内容时非常有用:

http://symfony.com/doc/current/reference/configuration/security.html#full-default-configuration

祝你好运!