问题描述
我今天安装了symfony 5.1.3,发现路由配置有些问题。我不确定这是否有意。但是至少它与symfony 4.4不同。我在4.4中有以下设置,效果很好。
homepage:
path:
en-us: /
others: /{_locale}/
controller: App\Controller\IndexController::homepage
requirements:
_locale: en-us|zh-cn|zh-hk
以上设置使我能够成功访问domain.com
和其他mydomain.com/en-us
,mydomain.com/zh-cn
和mydomain.com/zh-hk
。
但是现在在symfony 5.1中,以上设置现在不起作用。我相信对系统具有特殊含义的_locale可能是根本原因。有人可以帮我吗?
解决方法
我认为您使用的是本地化路线功能不正确。
path
中的键是语言环境。在您的情况下,您有2个语言环境:en-us
和others
。尝试打开mydomain.com/others
,您会看到它正在工作。
我建议将此配置分为2条路由:
homepage:
path: /
controller: App\Controller\IndexController::homepage
homepage_others:
path: /{_locale}/
controller: App\Controller\IndexController::homepage
requirements:
_locale: en-us|zh-cn|zh-hk