मैं अपनी परियोजनाओं में से एक में केकफ़्पी का उपयोग कर रहा हूं और मेरा ग्राहक चाहता है कि साइट यूआरएल .html के साथ समाप्त हो और सामान्य मित्रवत यूआरएल न हो। मैं सोच रहा था कि क्या इसके किसी भी रूटिंग तकनीक के माध्यम से केकफ़्पी में ऐसा करना संभव है। कृपया मदद करे।मैं केकेएचपी में अपने सभी यूआरएल में .html कैसे जोड़ सकता हूं?
उत्तर
मार्गों का उपयोग किए बिना इस का समाधान करना था। पृष्ठों के लिए डिफ़ॉल्ट मार्ग प्रविष्टि रखा:
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
और प्रदर्शन कार्रवाई में .html एक्सटेंशन हटा दिया और संबंधित दृश्य गाया:
preg_replace('/\.html$/','',$view);
$this->render(null,'default',$view);
बुला जबकि पृष्ठ 'ext' होने का जोड़ा।एचटीएमएल
this page के अनुसार आप इस
Router::connect('/(.*).html', array('controller' => 'pages', 'action' => 'display'));
की तरह कुछ कर सकते हैं, लेकिन जैसा कि आप एक्सटेंशन के बारे में बात कर रहे हैं, कि अन्य परिणाम हो सकते हैं।
हाय लुकास हेनिक्स, लिंक के लिए धन्यवाद। मैंने कोशिश की लेकिन यह मेरे लिए काम नहीं कर रहा है ... यह मुझे लापता नियंत्रक त्रुटि दे रहा है। –
आपको HTML एक्सटेंशन को अपाचे में PHP मॉड्यूल में भी जोड़ना होगा। मुझे बिल्कुल समायोजन की आवश्यकता नहीं है लेकिन यह /etc/httpd/httpd.conf फ़ाइल में होगा। (यह फ़ाइल आपके सर्वर के ओएस के आधार पर थोड़ी अलग जगह में हो सकती है।) बस PHP मॉड्यूल के साथ .php को संबद्ध करने वाली रेखा की तलाश करें। मेरा मानना है कि आप इसे .htaccess फ़ाइल में भी परिभाषित करने में सक्षम हो सकते हैं लेकिन मौसम या आप httpd.conf फ़ाइल में जो करने की अनुमति दे रहे हैं उस पर निर्भर नहीं कर सकते हैं।
यह आवश्यक नहीं होगा क्योंकि अपाचे केवल केक, एक्सटेंशन और सभी के माध्यम से सब कुछ रूट करेगा, क्योंकि .html फ़ाइलों में से कोई भी वास्तव में मौजूद नहीं है। यदि आपको भौतिक HTML फाइलें हैं जिन्हें आप PHP द्वारा संसाधित करना चाहते हैं, तो आपको केवल वही करने की ज़रूरत है, जो यहां नहीं है। – deceze
राउटर :: url() (जिसे एचटीएमएलहेल्पर :: लिंक() और कंट्रोलर :: रीडायरेक्ट()) जैसे अन्य तरीकों से बुलाया जा सकता है, उनमें से एक 'ext' है। इसे 'html' पर सेट करने का प्रयास करें। उदा:
echo $this->Html->link('Products', array('controller' => 'products', 'action' => 'index', 'ext' => 'html'));
या
$this->redirect(array('controller' => 'products', 'action' => 'index', 'ext' => 'html'));
अगर यह काम करता,() डिफ़ॉल्ट रूप से उस में जोड़ने के लिए एक तरह से आप रूटर :: यूआरएल ओवरराइड कर सकते हैं पता लगाना प्रयास करें।
केकफ़्प 3 में आप यूआरएल हेल्पर को भेजे गए पैरामीटर '_ext' का उपयोग कर सकते हैं। [और देखें - https://book.cakephp.org/3.0/en/views/helpers/url.html] – nsbm
यह अच्छी तरह से cookbook में प्रलेखित है।
अद्यतन: http://book.cakephp.org/2.0/en/development/routing.html#file-extensions
अपने मार्गों के साथ भिन्न फ़ाइल एक्सटेंशन संभाल के लिए, आपको कॉन्फ़िग फ़ाइल अपने मार्गों में से एक अतिरिक्त लाइन की जरूरत है:
Router::parseExtensions('html', 'rss');
आप बनाना चाहते हैं एक यूआरएल जैसे कि /page/title-of-page.html आप नीचे दिखाए गए अनुसार अपना मार्ग बना सकते हैं:
Router::connect(
'/page/:title',
array('controller' => 'pages', 'action' => 'view'),
array(
'pass' => array('title')
)
);
फिर लिंक जो मार्गों को वापस नक्शा बनाने के लिए बस का उपयोग करें:
$this->Html->link(
'Link title',
array('controller' => 'pages', 'action' => 'view',
'title' => 'super-article', 'ext' => 'html')
);
मुझे लगता है कि एक बेहतर दृष्टिकोण होना चाहिए जो ext => प्रदान करने के बजाय सभी नियंत्रक की क्रिया में .html जोड़ सकता है। मैन्युअल रूप से प्रत्येक नियंत्रक के लिए 'एचटीएमएल'। साथ ही, यदि .html एक्सटेंशन चालू/बंद करना चाहते हैं तो यह सभी नियंत्रक पर जाने और मैन्युअल रूप से ext पैरामीटर को जोड़ने/निकालने का कोई मतलब नहीं है। अगर आप जूमला को एसईओ चालू/बंद करना चाहते हैं तो आप क्या कहते हैं? –
@RNKushwaha: यदि आप अपनी टिप्पणी से यही चाहते हैं तो आप AppHelper :: url() में प्रत्येक लिंक में फ़ाइल एक्सटेंशन इंजेक्ट कर सकते हैं। – bancer
Routes Configuration - File extensions प्रलेखन अनुभाग का कहना है के रूप में, आप इस्तेमाल कर सकते हैं:
Router::parseExtensions('html', 'rss');
यह किसी भी मिलान फ़ाइल एक्सटेंशन को हटाने के लिए रूटर बता देंगे, और फिर पार्स क्या रहता है।
इसकी काफी सरल, ओपन फाइल एप्लिकेशन/config/routes.php और बस लाइन
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
अब आप .html एक्सटेंशन के साथ भी अपने नियंत्रक तरीकों का उपयोग कर सकते ऊपर
Router::parseExtensions('html', 'rss');
जोड़ें।
मुझे उम्मीद है कि यह मदद करता है।
- 1. मैं अपने स्पिनर को एक्शनबार में कैसे जोड़ सकता हूं?
- 2. मैं अपने डेटाबेस में सभी टेबल कैसे छोड़ सकता हूं?
- 3. मैं अपने यूआरएल से "सीजीआई-बिन" कैसे हटा सकता हूं?
- 4. मैं WWW :: मशीनीज़ में प्रगति पट्टी कैसे जोड़ सकता हूं?
- 5. मैं अपने आईओएस ऐप में स्थानीयकरण क्यों नहीं जोड़ सकता?
- 6. PHP में वर्तमान यूआरएल के अंत में मैं GET चर कैसे जोड़ सकता हूं?
- 7. मैं रेल 3 एप में अपने विक्रेता/कैश निर्देशिका में रत्न कैसे जोड़ सकता हूं?
- 8. मैं अपने कस्टम मॉड्यूल में कस्टम ब्लॉक में अपना कस्टम फॉर्म कैसे जोड़ सकता हूं
- 9. मैं अपने मॉडल में संग्रह सूची में पंक्तियां कैसे जोड़ सकता हूं?
- 10. मैं इंटरफ़ेस बिल्डर में कस्टम ऑब्जेक्ट कैसे जोड़ सकता हूं?
- 11. मैं वायरसहार्क में कस्टम प्रोटोकॉल विश्लेषक कैसे जोड़ सकता हूं?
- 12. मैं एटीजेएस ग्रिड में पंक्ति संख्या कैसे जोड़ सकता हूं?
- 13. मैं श्रेणी में गैर अनुक्रमिक संख्या कैसे जोड़ सकता हूं?
- 14. मैं अपने सभी सत्रों को टॉमकैट में कैसे समाप्त कर सकता हूं?
- 15. मैं अपने WinForm में यह WPF नियंत्रण कैसे जोड़ सकता हूं?
- 16. आईफोन एसडीके: मैं अपने आवेदन में स्क्रॉल व्यू कैसे जोड़ सकता हूं?
- 17. फ़ॉर्म में फोरच कंट्रोल, मैं अपने फॉर्म में सभी टेक्स्टबॉक्स में कुछ कैसे कर सकता हूं?
- 18. मैं अपने सभी PHPUnit परीक्षण कैसे चला सकता हूं?
- 19. मैं शीर्ष एक्शनबार में आइटम कैसे जोड़ सकता हूं?
- 20. मैं स्ट्रिंग में डिग्री चिह्न कैसे जोड़ सकता हूं?
- 21. मैं एंड्रॉइड में नया फोन कैलेंडर कैसे जोड़ सकता हूं?
- 22. मैं UINavigationBar में एकाधिक UIBarButtonItem को कैसे जोड़ सकता हूं?
- 23. मैं monodevelop में एक संदर्भ कैसे जोड़ सकता हूं?
- 24. मैं फ्लास्क में पृष्ठभूमि थ्रेड कैसे जोड़ सकता हूं?
- 25. मैं अपनी पर्ल स्क्रिप्ट में अंतर्राष्ट्रीयकरण कैसे जोड़ सकता हूं?
- 26. मैं netbeans में फोंट कैसे जोड़ सकता हूं?
- 27. मैं सरणी में कुंजी मान जोड़े कैसे जोड़ सकता हूं?
- 28. मैं हास्केल में हैंडल कैसे जोड़ सकता हूं?
- 29. मैं विजुअल स्टूडियो में कस्टम कमांड कैसे जोड़ सकता हूं?
- 30. मैं रनटाइम पर ऑब्जेक्ट में गुण कैसे जोड़ सकता हूं?
यह भी देखें [केकेपीएचपी में प्रत्येक यूआरएल में एक उपसर्ग जोड़ना] (http://stackoverflow.com/questions/1794412/adding-a-prefix-to-every-url-in-cakephp) – deceze
मुझे सुझाव है कि आप समझाएंगे आपका ग्राहक क्यों महत्वपूर्ण है –
ऐसा लगता है कि ग्राहक को अधिक शिक्षा की आवश्यकता हो सकती है। मैं किसी भी कारण से नहीं सोच सकता कि एक। एचटीएमएल एक्सटेंशन की आवश्यकता क्यों होगी। क्या कोई मुझे प्रबुद्ध कर सकता है? –