Symfony 2-can和x27;t为主机配置应用程序

Symfony 2-can和x27;t为主机配置应用程序,symfony,routing,resources,host,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}"

我在为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,它应该只显示英文版本,所以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。如果我从公共语言环境路由中删除,我得到了404。救命啊,我做错什么了


注:根据这一点:它应该工作…

用以下内容替换
前面的
\u locale

_locale: pl|en

谢谢你的回答,但是没有用。我发现一个资源不能包含两次。我还发现,bundle:是我关于如何隐藏默认语言的问题的答案,所以这个主题就解决了。