मैंने another answer पर टिप्पणी की कि समस्या यह है कि वस्तुओं को हल करते समय, इनकमिंग में रिवर्स प्रतिस्थापन लागू होते हैं। चूंकि आपके पास दो प्रतिस्थापन हैं, दोनों मैपिंग को "-" पर आने पर यह विफल रहता है क्योंकि यह प्रारंभ में अंतरिक्ष के साथ "-" को प्रतिस्थापित करने का प्रयास करता है, लेकिन उनमें से कुछ हाइफ़न अंडरस्कोर होना चाहिए लेकिन यह नहीं पता कि कौन सा होना चाहिए।
उदाहरण के लिए, दिया गया पथ: /path to some/item_url
तब उत्पन्न यूआरएल /path-to-some/item-url
है।
आने पर, रिवर्स प्रतिस्थापन का उत्तर दिया जाता है, और साइटकोर अब /path to some/item url
की तलाश में है, जो मौजूद नहीं है और इसलिए 404 फेंक दिया गया है। चूंकि "_" (अंडरस्कोर) को "-" (हाइफ़न) द्वारा प्रतिस्थापित किया गया था, आने वाले "-" (हाइफ़न) को "" (स्पेस) के साथ बदल दिया गया है। चूंकि प्रतिस्थापित करने के लिए कोई हाइफ़न नहीं छोड़ा गया है, इसलिए यह अंडरस्कोर से प्रतिस्थापित नहीं हो सकता है।
Sitecore.Pipelines.HttpRequest.ItemResolver, Sitecore.Kernel
में एक नज़र डालें और आपको MainUtil.DecodeName(args.Url.ItemPath)
पर एक कॉल दिखाई देगी जहां EncodeNameReplacements लागू होते हैं।
आप पहली बार इनसे निपटने के लिए एक ईवेंट हैंडलर का उपयोग कर बेहतर हैं ताकि आपको किसी भी तरह के मैपिंग के बारे में चिंता करने की आवश्यकता न हो।
मैंने आइटम नामकरण को नियंत्रित करने के लिए नियम इंजन का उपयोग करने के बारे में एक ब्लॉग पोस्ट लिखा जो यूआरएल को नियंत्रित करने के लिए उपयोगी है: https://jammykam.wordpress.com/2015/07/13/seo-friendly-urls-in-sitecore- रोकथाम इलाज से बेहतर है/ – jammykam