Symfony 2 - 无法为主机配置应用程序

时间:2014-04-17 12:16:06

标签: symfony routing resources host

我在为symfony应用程序设置主机时遇到问题。现在我们有一个域名,让我们看看它是所有四种语言的domain.pl。所以YML中的规则是:

front_common:
    resource: "@FrontCommonBundle/Resources/config/routing.yml"
    prefix:   /{_locale}
    defaults: { _locale: pl }
    requirements:
        _locale:  "[a-z]{2}"

front_common_locale:
    path: /
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        _locale: pl
        path: /pl
        permanent: true

因此,如果有人输入domain.pl,他/她将被重定向到domain.pl/pl。其他页面是domain.pl/en,domain.pl/de等等......

现在我们得到另一个域名,让我们说域名,这应该只显示英文版本,所以domain.eu显示英文,其他人仍然重定向到/ pl / de等我的路由现在看起来像这样:

front_common_eu:
    host:     domain.eu
    resource: "@FrontCommonBundle/Resources/config/routing.yml"
    prefix:   /
    defaults: { _locale: en }

front_common:
    resource: "@FrontCommonBundle/Resources/config/routing.yml"
    prefix:   /{_locale}
    defaults: { _locale: pl }
    requirements:
        _locale:  "[a-z]{2}"

front_common_locale:
    path: /
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        _locale: pl
        path: /pl
        permanent: true

当我输入domain.pl时,它工作正常,并将我重定向到/ pl。但是当我进入domain.eu它的工作方式相同时,它会将我重定向到/ pl。如果我删除了fron_common_locale路由,我就得到了404.帮助,我做错了什么?

PS。根据这个:Routing prefix as follows the Virtual Host它应该有用......

1 个答案:

答案 0 :(得分:0)

_locale上的front_common_locale替换为:

_locale: pl|en