url - Kentico 8 多语言前缀仅用于替代语言而不是根
问题描述
我代表客户发布此内容,并且不熟悉 Kentico 和 .NET,所以请多多包涵。
问题
我们的客户有一个两种语言的网站,比如说英语和德语。
URL 当前输出如下:
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
有人可以告诉我:
- 需要设置哪些 CMS 设置才能使所需的 URL 结构正常工作?
- 如果需要某种自定义 URL 重写处理程序,需要做什么?(我会在我去的时候更新这个,但甚至不知道从哪里看/开始)
解决方案
如果理解正确,您需要不带前缀的默认(英语)和带前缀的其他语言。您可以完全使用 Kenitco 设置来完成(我在我的一个网站上进行了相同的设置)。去settings-> URLs and SEO -> SEO - Cultures
。您需要检查最后 2 个(使用 URL的语言前缀 和允许没有语言前缀的 URL)。这里是文档也看看如何配置前缀
还要确保在sites -> your site name -> culture
默认内容文化中设置为英语。我知道您可以使用 routes,即您将拥有 /home 用于英语和 /de/home 用于德语,但我认为您不能使用标准 URL 来实现。本质上,您将不得不切换到整个站点的路由(如果您的站点不大,您可以手动进行)。
PS 当您添加新路线时,您需要重新启动应用程序才能使路线工作(尤其是在 8 中)。
推荐阅读
- python - Pandas:按行计算值
- nginx - K8S 裸机 nginx-ingress-controller
- java - 如何读取位于 java 项目的另一个包中的属性文件?
- date - 如何在 C++Builder 中比较两个日期。1 个来自 MaskEdit 的日期,2 个来自 Date() 的日期
- amazon-web-services - 我在哪里可以获得 aws get-current-user 的身份验证令牌?
- android - 如何在我的旧 Android 项目中添加生物识别支持 API (AndroidX)
- android - 如何在 FAB 中为可绘制的矢量着色?(android:tint 似乎不起作用)
- r - 用于绘制 allEffects 的反向转换响应
- javascript - 在 React 组件中渲染之前操作数据
- c# - 复制集合索引 c# mongo