【发布时间】:2014-03-26 09:53:50
【问题描述】:
你好吗?我正在用 Symfony2 开发一个多语言平台。如果有人输入 www.url.com/project 我希望将其重定向到 www.url.com/en/project。在不重复方法和所有路线几次的情况下,最简单的方法是什么?
对于 www.url.com 到 www.url.com/en/ 的主 url,我使用以下控制器
public function rootAction(Request $request) {
$locale = $request -> getLocale();
return $this -> redirect($this -> generateUrl('dbe_underConstructionLang', array('_locale' => $locale)));
}
这里的路线: 默认:
dbe_underConstruction:
path: /
defaults: { _controller: DbeBundle:UnderConstruction:root }
这是默认页面
dbe_aboutus:
path: /{_locale}/aboutus
defaults: { _controller: DbeBundleBundle:Aboutus:index }
requirements:
_locale: en|fr|de
此外,我无法将登录路由设为多语言,因为在 security.yml 中我无法设置所需的 _locale 参数:
dbe_login:
path: /login
defaults: { _controller: DbeBundle:Login:login}
firewalls:
secured_area:
pattern: ^/
form_login:
check_path: /login_check
login_path: /login
logout:
path: /logout
target: /
已经谢谢了!
【问题讨论】:
-
检查this,希望你能找到一些解决方案..