【问题标题】:Kentico 8 multilanguage prefixes for alternate languages only & not rootKentico 8 多语言前缀仅用于替代语言而不是根
【发布时间】:2018-07-06 20:39:35
【问题描述】:

我代表客户发布此内容,我不熟悉 Kentico 和 .NET,所以请多多包涵。

问题

我们的客户有一个使用两种语言的网站,比如说英语和德语。

网址当前输出如下:

  • example.com
  • example.com/home(当他们尝试将其重定向到根目录时, 他们得到一个循环)
  • example.com?lang=de
  • example.com/home?lang=de
  • example.com/cat-l1/page
  • example.com/cat-l2/page?lang=de

即使进行了规范化,上述内容对于 SEO 目的来说还是非常不整洁和不利的。

我的客户尝试在 Kentico 8 中为 URL 实现多语言前缀,但结果如下:

  • example.com/en
  • example.com/de
  • example.com/en/page
  • example.com/de/seite

这样更好,但我既不想重定向根域,也不想拥有多余的/en/ 子目录。

我浏览了 Kentico 支持论坛并尝试获取文档,但这些信息似乎并不容易获得。

我需要什么

我只想将多语言前缀用于替代语言(不是默认语言)。例如:

  • example.com/
  • example.com/de
  • example.com/page
  • example.com/de/seite

谁能告诉我:

  1. 需要设置哪些 CMS 设置才能获得所需的 URL 结构工作?
  2. 如果某种自定义 URL 重写处理程序 是必需的,需要做什么? (我会随时更新,但甚至不知道从哪里看/开始)

【问题讨论】:

标签: url kentico multilingual


【解决方案1】:

如果理解正确,您需要不带前缀的默认(英语),以及带前缀的其他语言。您可以完全使用 Kenitco 设置来完成(我在我的一个网站上进行了相同的设置)。转到settings-> URLs and SEO -> SEO - Cultures。 您需要检查最后 2 个(为 URL 使用语言前缀允许没有语言前缀的 URL)。这里是documentation 也可以看看how to configure prefixes

还要确保sites -> your site name -> culture 中的默认内容文化设置为英语。我知道您可以使用with routes,即您将使用 /home 表示英语,使用 /de/home 表示德语,但我认为您不能使用标准 URL 来做到这一点。本质上,您将不得不切换到整个站点的路由(如果您的站点不大,您可以手动进行)。

附:添加新路线时,您需要重新启动应用程序才能使路线正常工作(尤其是在 8 中)。

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 2016-06-05
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2020-12-26
    相关资源
    最近更新 更多