我在为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它应该有用......
答案 0 :(得分:0)
将_locale
上的front_common_locale
替换为:
_locale: pl|en