php - Make SEO sensitive URL (avoid id) Zend framework -
मेरे पास ऐसा url है:
http: //quickstart.local/public/ श्रेणी 1 / उत्पाद 2 और यूआरएल (कैटेगरी 1 / प्रॉडक्ट 2) नंबर आईडी, कैटेगरी और आईडी को डेटाबेस ध्यान से प्राप्त किए गए उत्पादों आईडी
आईडी अद्वितीय है
मुझे संवेदनशील यूआरएल की तरह ज़ेंड फ़्रेमवर्क यूआरएल की आवश्यकता है उदाहरण के लिए: http://stackoverflow.com/questions/621380/seo-url-structure कैसे मैं उस यूआरएल को इस तरह नए यूआरएल में परिवर्तित कर सकता हूँ
क्या कोई रास्ता है? !!
आप जेडएफ के इस्तेमाल कर सकते हैं उदाहरण के लिए, एसओ द्वारा उपयोग किए जाने वाले लोगों के समान यूआरएल बनाने के लिए, एक आवेदन .इनी में एक कस्टम मार्ग को परिभाषित कर सकता है (इस बात पर मानते हुए कि आपके पास नियंत्रक और क्रियाएं हैं, जो प्रश्नों को कहते हैं और क्रमशः दिखाते हैं):
resources.router.routes.questions.route = '/ प्रश्न /: id /: शीर्षक' resources.router.routes.questions.type = "Zend_Controller_Router_Route" resources.router.routes.questions.defaults.module = डिफ़ॉल्ट resources.router। routes.questions.defaults.controller = सवालों = दिखाने resources.router.routes.questions.defaults.id = resources.router.routes.questions.defaults.title = resources.router resources.router.routes.questions.defaults.action। मार्गों को देखते हुए। Questions.reqs.id = "\ d +" इस तरह के मार्ग के होने पर, आप अपने विचारों में यूआरएल उत्पन्न कर सकते हैं:
& lt ;; Php echo $ this- & gt; url (सरणी ('आईडी' = & gt; 621380, 'शीर्षक' = & gt; 'एसईओ यूआरएल संरचना'), 'प्रश्न'); / MyApp / सार्वजनिक / प्रश्न / 621,380 / एसईओ + यूआरएल + संरचना // या यदि आप वास्तव में अपने शीर्षक में डैश करना चाहते हैं: में // परिणाम? & LT; $ इस- & gt गूंज पीएचपी, यूआरएल (सरणी ( 'आईडी' = & gt; 621,380, 'शीर्षक' = & gt; preg_replace ( '/ \ s + /', '-', 'एसईओ यूआरएल संरचना'), 'सवाल'); // परिणामों में: / MyApp / सार्वजनिक / प्रश्न / 621,380 / एसईओ-यूआरएल-संरचना ध्यान दें कि / myapp / public / यूआरएल में उत्पन्न है क्योंकि मेरे पास मेरे लोकलहोस्ट पर वर्चुअल मेजबान सेटअप नहीं है और न ही कोई संशोधन यह भी ध्यान रखें कि आपको अनन्य : title की आवश्यकता नहीं है, क्योंकि आपका वास्तविक आईडी : id चर में है। एक तरफ नोट के रूप में, यदि आप इसे थोड़ा अधिक उपयोगकर्ता के अनुकूल बनाना चाहते हैं, तो अपने यूआरएल को / प्रश्न / 621380 / see-url-structure के बजाय / questions / 621380 / देखें-यूआरएल-संरचना यह इसलिए है क्योंकि इस यूआरएल के तहत आपके पास केवल एक ही सवाल है, न कि कई सवाल। यह केवल निम्नलिखित कोड को बदलकर किया जा सकता है: resources.route R.routes.questions.route = '/ प्रश्न /: आईडी /: शीर्षक' । संपादित करें:
और आपके पास श्रेणियों और उत्पादों के साथ क्या करना है आपके प्रश्न में? इसलिए, मैं एक कस्टम मार्ग को परिभाषित करता हूं, लेकिन इस बार का उपयोग कर:
resources.router.routes.questions.route = '/ questions / (\ d +) - (d +) / (\ w *) 'resources.router.routes.questions.type = "Zend_Controller_Router_Route_Regex" resources.router.routes.questions.defaults.module = डिफ़ॉल्ट resources.router.routes.questions.defaults.controller = सवालों resources.router.routes.questions। defaults.action = शो resources.router.routes.questions.map.1 = श्रेणी resources.router.routes.questions.map.2 = उत्पाद resources.router.routes.questions.map.3 = शीर्षक resources.router.routes। प्रश्न। रिवर्स = "प्रश्न /% d-% d /% s" इस मार्ग का यूआरएल तब उत्पन्न होगा:
& lt ;? Php echo $ this- & gt; url (ऐरे ('श्रेणी' = & gt; 6213, 'उत्पाद' = & gt; 80, 'शीर्षक' = & gt; preg_replace ('/ \ s + /', '-', 'एसईओ यूआरएल संरचना ')),'प्रशन' ); ? & Gt; // परिणामों में: / myapp / public / questions / 6213-80 / seo-url-structure आशा है कि इससे आपको सही दिशा में मदद मिलेगी या कम से कम आपको बताएंगे।
Comments
Post a Comment