Symfony 5.1路由问题

问题描述

我今天安装了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-usmydomain.com/zh-cnmydomain.com/zh-hk

但是现在在symfony 5.1中,以上设置现在不起作用。我相信对系统具有特殊含义的_locale可能是根本原因。有人可以帮我吗?

解决方法

我认为您使用的是本地化路线功能不正确。 path中的键是语言环境。在您的情况下,您有2个语言环境:en-usothers。尝试打开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