我正在制作可以从不同主机运行的多语言网站
有些主持人只能有一种语言。
我无法弄清楚如何将用户从一种语言重定向到另一种语言
例如:
如果site.com只有de languge(site.com/de)
并且有人试图直接访问site.com/en我想立即将它们重定向到site.com/de。
或如何根据主机限制语言环境前缀(应该是动态的)?
我认为有一种方法可以从服务监听器那里做到这一点,但我不知道要传递给它以便能够从中重定向。
答案 0 :(得分:0)
首先,我认为这种限制应该由httpd服务器配置提供。对我来说,这是一个你应该允许/禁止基于远程主机IP访问的地方,然后重定向到允许的网站命名空间。
回答您的问题try to use JMSI18nRoutingBundle bundle或类似问题。在这种情况下,您可以重载Router / DefaultLocaleResolver.php类,将其替换为配置(jms_i18n_routing.router.class
)。
在您的重载路由器中,选中$request->getClientIp();
,将基于主机的解析添加到resolveLocale function。这样不仅可以将主页重定向到“正确”的语言环境,还可以重定向到应用程序中的任何链接。
我认为这是最简洁的玩具工具。
祝你好运!