Ho commentato another answer che il problema è che quando si risolvono gli articoli, l'entrata ha le sostituzioni inverse applicate. Dato che hai due rimpiazzamenti entrambi in "-" quindi in ingresso fallisce poiché tenta di sostituire "-" inizialmente con lo spazio, ma alcuni di questi trattini dovrebbero essere underscore ma non ha idea di quale dovrebbe essere quale.
Ad esempio, percorso specificato: /path to some/item_url
quindi l'URL generato è /path-to-some/item-url
.
All'ingresso, vengono replicate le sostituzioni inverse e Sitecore sta cercando /path to some/item url
, che non esiste e quindi viene generato un 404. Poiché "_" (carattere di sottolineatura) è stato sostituito da un "-" (trattino), in entrata il "-" (trattino) viene sostituito con "" (spazio). Dato che non ci sono trattini da sostituire, non può essere sostituito con il carattere di sottolineatura.
Dai uno sguardo allo Sitecore.Pipelines.HttpRequest.ItemResolver, Sitecore.Kernel
e vedrai una chiamata allo MainUtil.DecodeName(args.Url.ItemPath)
in cui vengono applicati gli EncodeNameReplacements.
È meglio utilizzare un gestore di eventi per occuparsi di questi in primo luogo in modo da non preoccuparsi di alcun tipo di mappatura.
Ho scritto un post sul blog sull'utilizzo del motore delle regole per controllare la denominazione degli articoli che è utile per controllare gli URL: https://jammykam.wordpress.com/2015/07/13/seo-friendly-urls-in-sitecore- prevenire è meglio che curare/ – jammykam