2016-08-19 12 views
1

I Anzeigename in URL deaktiviert haben:Kann nicht Anzeigename in URL deaktivieren

<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> 

Aber ich kann immer noch auf den Anzeigenamen suchen. Ich habe keinen benutzerdefinierten ItemResolver. Ich kann nicht herausfinden, warum ich diese Seiten nach dem Anzeigenamen durchsuchen kann.

+0

Werden URLs mit dem Anzeigenamen generiert, oder können Sie nur dann zur Anzeigenamen-URL wechseln, wenn Sie sie direkt eingeben? – jammykam

+0

Wenn ich dazu blättern. Der Link-Manager generiert die Anzeigename-URL nicht. –

Antwort

1

Es ist LinkProvider, die für die URL-Generation verantwortlich ist. Es hat nichts damit zu tun, die URL zu durchsuchen.

Zum Durchsuchen der URL müssen Sie Ihre eigene ItemResolver schreiben.

Standardeinstellung Sitecore ItemResolver Klasse hat eine Methode, die versucht, Element basierend auf seinem Anzeigenamen zu lösen, und es gibt keine Einstellung, die es Ihnen ermöglichen würde, es aus der Box zu deaktivieren.

0

Dies liegt daran, dass Sie den Link-Provider nur so einstellen, dass Display Names beim Generieren der Links nicht verwendet wird.

Sitecores Link Provider und Item Resolver verwenden einen anderen Code. Im Artikel Resolver, wenn das Element nicht durch den direkten Weg gelöst werden kann, nennt sie diesen Code:

Item obj2 = this.ResolveUsingDisplayName(args); 

So wird es auch durch die Anzeigenamen aufzulösen.

Um dies zu ändern, müssten Sie die ItemResovler überschreiben und diese Codezeile entfernen.