我在使用 Symfony2 构建的站点的路由和国际化方面遇到问题。
如果我在routing.yml 文件中定义路由,如下所示:
example:
pattern: /{_locale}/example
defaults: { _controller: ExampleBundle:Example:index, _locale: fr }
它适用于以下 URL:
mysite.com/en/example
mysite.com/fr/example
但不适用于
mysite.com/example
是否只允许在 URL 末尾使用可选占位符?
如果是,显示 url 的可能解决方案是什么:
mysite.com/example
使用默认语言或将用户重定向到:
mysite.com/defaultlanguage/example
当他访问时:
mysite.com/example. ?
我正在尝试解决这个问题,但到目前为止还没有成功。
Thanks.
如果有人感兴趣,我成功地在我的routing.yml
不使用其他捆绑包。
现在,这些 URL 可以工作了:
www.example.com/
www.example.com//home/
www.example.com/fr/home/
www.example.com/en/home/
编辑你的app/config/routing.yml
:
ex_example:
resource: "@ExExampleBundle/Resources/config/routing.yml"
prefix: /{_locale}
requirements:
_locale: |fr|en # put a pipe "|" first
那么,在你app/config/parameters.yml
,你必须设置一个区域设置
parameters:
locale: en
这样,人们就可以访问您的网站,而无需输入特定的区域设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)