2012-11-28 8 views
11

आपको बता दें कि आपको उन उत्पादों का हिस्सा एक यूआरएल कुंजी है, यूआरएल कुंजी अंक के इसके परिशिष्ट में होगा:Magento - यूआरएल कुंजी/उत्पाद URL में निकाला जा रहा है संख्या

यानी

http://www.site.com/main-category/sub-category/product-name- .html

मैं उस 6260 के स्रोत को कैसे ढूंढूं (जो मेरे यूआरएल में शामिल # में से एक है)? मैंने उत्पाद आईडी, स्कू की कोशिश की, मुझे इसका स्रोत नहीं मिल रहा है। कारण मैं पूछता हूं क्योंकि अगर मैं इसे पा सकता हूं, तो मैं कुछ उत्पाद सूची पृष्ठों पर उन्हें गूंजने से पहले इसे यूआरएल से बाहर फ्लश करने के लिए फ़ंक्शन को प्रतिस्थापित कर सकता हूं।

धन्यवाद।

+0

क्या आपने व्यवस्थापक क्षेत्र में URL रीवाइट्स को देखा है? [इस] से (http://stackoverflow.com/questions/5019584/magento-puts-1-in-my-urls-can-i-remove-programatically) एसओ पर पोस्ट, और जो मैंने खुद को देखा है, यह है यूआरएल रिवाइट्स और इंडेक्सिंग इश्यू – CCBlackburn

+0

के साथ कुछ करने के लिए मेरी चिंता यह है कि मैं * हजारों * कॉन्फ़िगर करने योग्य उत्पादों (जो यूआरएल कुंजी डुप्लिकेट का कारण बनता है) के साथ साइट पर नियंत्रण ले रहा हूं और किसी ने इससे पहले इसका ख्याल नहीं रखा। मुझे यकीन नहीं है कि व्यवस्थापक में कोई अनुभाग है जो इसे एक झुकाव में हल करता है। मेरी चिंता यह है कि, उस पोस्ट के विपरीत आप संदर्भित करते हैं, मेरे यूआरएल अंकों के साथ गतिशील हैं और मुझे कोई वास्तविक पैटर्न नहीं मिल रहा है। यही कारण है कि मुझे आश्चर्य है कि गतिशील रूप से संलग्न अंकों का स्रोत क्या है, यह जानने का एक गतिशील तरीका है। यह मेरी चिंता है। स्पष्ट रूप से एक ऐसा कार्य है जो इसे नियंत्रित करता है ... धन्यवाद। – Joel

+0

बस एक विचार था, सरल उत्पाद से कॉन्फ़िगर करने योग्य उत्पाद के लिए यूआरएल कुंजी है? यदि नहीं, तो यह भी समस्याएं पैदा करेगा – CCBlackburn

उत्तर

21

कोड में स्थान प्राप्त करने से पहले जहां यह होता है, सलाह दी जाती है कि आप दर्द की दुनिया में प्रवेश कर रहे हैं।

  1. कोई सरल कैसे उन संख्याओं को उत्पन्न कर रहे हैं के रूप में शासन नहीं है। ऐसे मामले हैं जहां यह स्टोर आईडी है, ऐसे मामले हैं जहां यह सरल उत्पाद आईडी है। ऐसे मामलों में जहां यह है न

  2. यहां तक ​​कि अगर वहाँ था, यह है कि इस

  3. बदल जाता है अंत में, के बाद से Magento के मानव पठनीय/एसईओ के अनुकूल यूआरएल स्थित हैं कस्टम कार्यक्षमता को रोकने के लिए नहीं-से-खरोंच Magento साइटों के लिए आम बात है core_url_rewrite तालिका में, यह लोगों को मनमाने ढंग से पाठ कयामत की

चेतावनी एक तरफ डालने के लिए के लिए संभव है, मॉडल आप देख रहे हैं Mage::getSingleton('catalog/url') है। इसमें Magento कैटलॉग और उत्पाद पुनर्लेखन उत्पन्न करने के लिए अधिकांश तर्क शामिल हैं। इन सभी विधियों को getUnusedPath विधि के माध्यम से अनुरोध पथ पारित करके समाप्त होता है।

#File: app/code/core/Mage/Catalog/Model/Url.php 
public function getUnusedPath($storeId, $requestPath, $idPath) 
{ 
    //... 
} 

इस विधि में यूआरएल के अंत में एक अद्वितीय संख्या बनाने के लिए तर्क शामिल है। इसे पूरी तरह से ट्रेस करना एक स्टैक ओवरफ़्लो पोस्ट के दायरे से बाहर है, लेकिन विशेष रूप से यह पंक्ति प्रबुद्ध/निराशाजनक है।

$lastRequestPath = $this->getResource() 
    ->getLastUsedRewriteRequestIncrement($match[1], $match[4], $storeId); 
if ($lastRequestPath) { 
    $match[3] = $lastRequestPath; 
} 
return $match[1] 
    . (isset($match[3]) ? ($match[3]+1) : '1') 
    . $match[4]; 

विशेष रूप से, इन दो पंक्तियों

$match[3] = $lastRequestPath; 
//... 
. (isset($match[3]) ? ($match[3]+1) : '1') 
//... 

मामले में यह स्पष्ट नहीं है, ऐसे मामले हैं जहां Magento स्वचालित रूप से एक यूआरएल के लिए एक 1 जोड़ देंगे, और फिर इसे बढ़ाने के लिए जारी रखने के लिए कर रहे हैं। यह उन यूआरएल की पीढ़ी को सिस्टम स्थिति पर निर्भर करता है जब वे उत्पन्न होते थे - कोई आसान नियम नहीं है।

इस फ़ाइल में ब्याज की अन्य लाइनों

if (strpos($idPath, 'product') !== false) { 
    $suffix = $this->getProductUrlSuffix($storeId); 
} else { 
    $suffix = $this->getCategoryUrlSuffix($storeId); 
}  

यह $suffix रूप में अच्छी तरह URL के अंत पर उपयोग किया जाएगा है, इसलिए उन तरीकों की जांच के लायक हैं।

यदि आप जो भी करने की कोशिश कर रहे हैं वह यूआरएल से संख्याओं को हटा रहा है, तो आप नियमित अभिव्यक्ति या कुछ explode/implode स्ट्रिंग जिगर्जिंग के साथ बेहतर हो सकते हैं।

+1

यह ध्यान देने योग्य है कि 1.7 में एक बग प्रतीत होता है जिसके कारण Magento रोल हमेशा किसी भी उत्पाद के लिए एक नया मान उत्पन्न करता है जिसमें डुप्लिकेट नाम होता है। आखिरकार रेनडिएक्स दौड़ने के बावजूद कुछ भी बदल गया है या नहीं। –

+0

@ कैग्स कौन सा बग कैसे? –

+0

क्षमा करें, दुर्घटना से पोस्ट मारा। बस पर फोन करने के लिए मुश्किल है। अधिक जानकारी के साथ अद्यतन करें। –

2

मुझे यह नहीं पता कि यह क्यों काम करता है लेकिन यह मेरे लिए काम करता है। सबसे अधिक संभावना है क्योंकि यह यूआरएल अद्वितीय नहीं बनाता है। Magento ver। 1.7.0.2 ने अचानक अपने नए उत्पादों के नामों के लिए प्रत्यय के रूप में संख्याओं को जोड़ना शुरू कर दिया था, भले ही उनके यूआरएल कुंजी और नाम पुराने उत्पादों से अलग थे। एक झुकाव पर, मैं System -> Configuration -> Catalog -> Search Engine Optimizations -> Product URL Suffix पर गया और डिफ़ॉल्ट .html से -prod.html बदल दिया। मुझे लगता है कि आप इसे किसी भी प्रत्यय में बदल सकते हैं जिसे आप चाहते थे। फिर मैंने अपनी वेबसाइट, ताज़ा कैश, और प्रतिष्ठा को फिर से अनुक्रमित किया! सभी यूआरएल उत्पाद यूआरएल से चले गए थे। उत्पाद urls अब सभी प्रारूप custom-product-name-prod.html है। कैनोलिक टैग भी custom-product-name-prod.html दिखाता है इसलिए मैं दोबारा खुश हूं।

पता नहीं है कि यह दूसरों के लिए काम करेगा, लेकिन मुझे उम्मीद है कि यह करता है। ध्यान दें कि मेरे पास डुप्लिकेट यूआरएल के साथ पुराने और नए उत्पाद हैं और मैंने इस प्रक्रिया को करने से पहले पुराने उत्पादों को अक्षम कर दिया था। तो यदि आपके पास एक ही यूआरएल कुंजी के साथ 2 उत्पाद हैं और दोनों सक्षम हैं, तो यह आपके लिए काम नहीं कर सकता है।

संबंधित मुद्दे