2015-06-23 12 views
7

Sto usando Sitecore 7.5 e la sostituzione di due coseSitecore - riscrittura “_” a “-” negli URL ma andando a 404

<replace mode="on" find=" " replaceWith="-" />(Space with hyphen) 
<replace mode="on" find="_" replaceWith="-" />(underscore with hyphen) 

Sostituzione spazio (" ") con hyphne (-) sta lavorando bene, ma nel caso di underscore (_) il suo cambio di trattini (-) ma reindirizzamento a 404, qualche idea?

Siamo in grado di gestirlo tramite il gestore eventi ma non vogliamo farlo in questo modo.

risposta

10

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.

+0

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

Problemi correlati