企业需要始终在我们的CD网站的URL中显示语言。我做了一些研究,并将LanguageEmbedding设置设为始终。这对于非默认语言似乎工作正常,但对于英语(这是默认语言)不起作用。Sitecore语言嵌入和默认语言
当我试图去www.abc.com时,它不应该更改为www.abc.com/en?我是否正确地考虑这个问题,或者这是Sitecore如何处理默认语言,如果它不是嵌入式链接,它将不会显示该语言?
感谢
企业需要始终在我们的CD网站的URL中显示语言。我做了一些研究,并将LanguageEmbedding设置设为始终。这对于非默认语言似乎工作正常,但对于英语(这是默认语言)不起作用。Sitecore语言嵌入和默认语言
当我试图去www.abc.com时,它不应该更改为www.abc.com/en?我是否正确地考虑这个问题,或者这是Sitecore如何处理默认语言,如果它不是嵌入式链接,它将不会显示该语言?
感谢
OOTB是Sitecore工作的方式。当你有LanguageEmbedding =“always”时 - 链接应该全部使用嵌入语言生成 - 包括en,所以主页的链接将是www.abc.com/en
- 但如果你只是访问域 - www.abc.com
- Sitecore然后使用从上次访问时存储的语言Cookie或默认语言。
如果你想要的行为是,如果你访问www.abc.com
用户是总是这将是更好的使用IIS重定向或重写。
当Sitecore的决定通过浏览器偏好,饼干,URL蛞蝓,或查询字符串您的语言,它会不重定向到与语言蛞蝓是首选URL结构。
您可以创建一个重定向模块(即,如果语境设置,使正确的URL和重定向)或写出来<link langref="">
标签,这是一个搜索引擎优化的最佳实践反正。
这很有道理。谢谢! – Gabbar
如果您希望浏览器中的离线链接或直接网址具有一致的行为,那么仅在主页上执行重定向将不够。如果说通过语言解析器将用户的语言设置为“es”(即,您是否将/ products重定向到/ en/products或/ es/products?),则仅将IIS重定向到子页面的规则变得特别困难。 –