无法在网址中停用显示名称

时间:2016-08-19 15:57:13

标签: sitecore sitecore8

我在禁用网址时显示名称:

<linkManager defaultProvider="sitecore">
  <providers>
    <clear />
    <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="false" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="never" languageLocation="filePath" lowercaseUrls="false" shortenUrls="true" useDisplayName="false" />
  </providers>
</linkManager>

但我仍然可以浏览显示名称。我没有自定义的ItemResolver。我无法弄清楚为什么我可以通过显示名称浏览这些页面。

2 个答案:

答案 0 :(得分:1)

负责网址生成的LinkProvider。它与浏览网址无关。

要浏览网址,您需要自己编写ItemResolver

默认Sitecore ItemResolver类有一种尝试根据其显示名称解析项目的方法,并且没有允许您开箱即用的设置。

答案 1 :(得分:0)

这是因为您只是将链接提供程序设置为在生成链接时不使用Display Names

Sitecores链接提供程序和项目解析程序使用不同的代码。在项目解析器中,如果直接路径无法解析该项目,则会调用此代码:

Item obj2 = this.ResolveUsingDisplayName(args);

因此它也将通过显示名称解析。

要更改它,您需要覆盖ItemResovler并删除该行代码。