【问题标题】:Redirect to default language in Nodejs?重定向到 Nodejs 中的默认语言?
【发布时间】:2019-12-31 01:22:37
【问题描述】:

目前在我有两种语言设置(EN 和 FR)的 Node.js/Express 网站上工作。 如果用户输入 www.domain.com(= 未设置语言),我希望它被重定向到默认语言的起始页 - 在这种情况下为 EN,所以 www.domain.com/en 但如果用户输入 www。 domain.com/fr 它应该加载 FR 语言的起始页。

编辑: 我将如何在后端正确执行此操作,以便重定向尽快发生并正确?

谢谢

【问题讨论】:

  • 尝试将自己限制在一个问题对一个问题(特别是,您应该删除第二个问题,因为这种类型的 SEO 问题主要是基于意见的,因此偏离主题……尽管它可能会找到归宿在网站管理员的 stackexchange 上)。
  • 好的。但我认为它是主要问题的一个子问题?但可以肯定的是,我会编辑。

标签: javascript node.js redirect seo multilingual


【解决方案1】:

您不需要进行重定向,只需对根路径和语言特定路径使用相同的路由处理函数即可:

router.get('/en', handleEnglish);
router.get('/', handleEnglish);
router.get('/fr', handleFrench)

如果您想通过重定向来明确网址,您可以执行以下操作:

router.get('/en', handleEnglish);
router.get('/fr', handleFrench)
router.get('/', function(req, res) {
  res.redirect('/en');
});

【讨论】:

  • 是的,但我不想只使用 /en 和 /fr,所以如果用户只使用 / 输入,它应该重定向到 /en。这是个坏主意吗?
  • 所以您想强制 /en 作为 URL 的一部分出现并承担重定向的开销?这样做的目的是什么,只是为了让用户看到他处于英语模式(这在页面内容中应该很明显)。如果您真的需要,我可以更新答案 - 这也很简单。
  • 所以你认为我应该考虑 / 是英语,从而完全跳过 /en?并且只有 /fr 用于法语内容?它们都将共享相同的 url 结构,例如 /about 和 /fr/about,所以我只需要确定开头是否有“fr”以使应用程序提供法语内容?
  • 我并不是说您需要跳过 /en - 如果用户使用它,那很好 - 他们将获得与仅键入 / 相同的内容。 IMO 我会同时支持两者(如果以后默认更改的可能性不大)关于共享结构,现在您遇到了一个不同的设计问题(比您原来的帖子更多)。国际化本身就是一个非常深刻的话题,但如果您只关注消息传递的差异,那么两种语言的单一页面是最好的。见dev.to/israelmuca/…
  • 谢谢。我想我会坚持支持两者。
猜你喜欢
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
相关资源
最近更新 更多