我在禁用网址时显示名称:
<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。我无法弄清楚为什么我可以通过显示名称浏览这些页面。
答案 0 :(得分:1)
负责网址生成的LinkProvider
。它与浏览网址无关。
要浏览网址,您需要自己编写ItemResolver
。
默认Sitecore ItemResolver
类有一种尝试根据其显示名称解析项目的方法,并且没有允许您开箱即用的设置。
答案 1 :(得分:0)
这是因为您只是将链接提供程序设置为在生成链接时不使用Display Names
。
Sitecores链接提供程序和项目解析程序使用不同的代码。在项目解析器中,如果直接路径无法解析该项目,则会调用此代码:
Item obj2 = this.ResolveUsingDisplayName(args);
因此它也将通过显示名称解析。
要更改它,您需要覆盖ItemResovler
并删除该行代码。