【发布时间】:2014-01-15 09:41:33
【问题描述】:
是否有强制在 URL 中使用语言的设置?比如,如果我浏览到http://www.site.com,我应该被重定向到http://www.site.com/en,因为现在我可以看到没有语言前缀的起始页。
LinkManager 配置为始终放入前缀,因此至少所有链接看起来都很好。
【问题讨论】:
标签: asp.net-mvc sitecore sitecore7
是否有强制在 URL 中使用语言的设置?比如,如果我浏览到http://www.site.com,我应该被重定向到http://www.site.com/en,因为现在我可以看到没有语言前缀的起始页。
LinkManager 配置为始终放入前缀,因此至少所有链接看起来都很好。
【问题讨论】:
标签: asp.net-mvc sitecore sitecore7
另一种使用方式是我们的SEO Friendly URL Module。
此模块实现了一个自定义 LinkProvider,它提供了 SEO 友好 URL,并强制通过其友好 URL 访问项目。
因此,如果访问项目时没有 URL 中的语言代码(例如 /my-item),模块将 301 重定向到带有语言代码的 URL(例如 /en/my-item)。
也就是说,如果您已将其配置为强制使用友好 URL (forceFriendlyUrl="true") 并设置 languageEmbedding="always"。
我们在 corporate website 上使用该模块,因此请查看它以了解它的实际效果。
【讨论】:
您可以使用ISS URL Rewrite 将/重定向到/en
在 IIS 上安装该模块,并设置规则。 可以从 IIS gui 或 web.config 完成
我正在使用这条规则来做同样的事情。
在 web.config 的 system.webServer 部分插入以下配置
<system.webServer>
<rewrite>
<rule name="redirert / to en" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{PATH_INFO}" pattern="^/$" />
</conditions>
<action type="Redirect" url="/en/" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
它将每一个命中“/”的请求重定向到“/en”
【讨论】:
Accept-Language。