我有一个我试图国际化的symfony2网站。我有/ en和/ es前缀的路由,但如果url中没有指定语言,我希望sf2获取默认语言。
我使用以下参数定义了根路由:
home:
[...]
prefix: /{_locale}/
defaults: { _locale: en }
requirements:
_locale: en|es
然后,如果我去'www.web.com/en'或'www.web.com/es'它会正确重定向,但如果我去'www.web.com',它就不会默认语言('en')。我收到错误消息No route found for "GET /".
哪里出错?
感谢。
答案 0 :(得分:0)
除了你的前缀之外,它看起来都很正确。取消尾随斜杠,因为否则您的路由规则试图匹配www.web.com//,这意味着您实际上没有为www.web.com定义路由。
答案 1 :(得分:0)
您可以解决此问题并公布路线
在 app / config / routing.yml 中设置2条不同的路线:
插入:
app:
pattern: /
defaults: {_controller: AppBundle:Default:index }
app_locale:
resource: "@AppBundle/Controller/"
type: annotation
prefix: /{_locale}
defaults: { _locale: en }