2009-11-03 13 views
7

मैं आधिकारिक कोड आग लगनेवाला ट्यूटोरियल के माध्यम से जा रहा था जब मैं कोई समस्या हुई ...कोड आग लगनेवाला फ़ंक्शन कॉल 404

tutorial मुझे बचाने के लिए और इस कोड को चलाने के लिए किया था: अगर मैं प्रवेश

<?php 
class Blog extends Controller { 

    function index() 
    { 
     echo 'Hello World!'; 
    } 

    function comments() 
    { 
     echo 'Look at this!'; 
    } 
} 
?> 

निम्न URL:

index.php/blog

यह काम करता है और प्रदर्शित करता है "नमस्ते दुनिया!"।

जब मैं इस प्रकार की टिप्पणियां प्रदर्शित करने के लिए URL को संशोधित:

index.php/blog/comments/

मैं एक 404.

+0

क्या आपने किसी भी तरह का रूटिंग का उपयोग किया है? या Mod_rewrite? इसके अलावा, मुझे लगता है कि यह कैसे काम नहीं कर रहा है। [1]: http://codeigniter.com/user_guide/general/routing.html –

+0

यह लगभग निश्चित रूप से एक रूटिंग समस्या है। सुनिश्चित करें कि आपके पास उपयोगकर्ता मार्गदर्शिका में पिछले चरणों से कोई भी पकड़-मार्ग नहीं है। यदि आपके पास कोई कैच-ऑल है, तो यह कंट्रोलर को ठीक से रूट नहीं करेगा। – treeface

उत्तर

1

डिफ़ॉल्ट रूप से, अपने उदाहरण से काम करना चाहिए मिलता है। अपनी कॉन्फ़िगरेशन की जांच करें और .htaccess को हटाएं क्योंकि आपका उदाहरण mod_rewrite का उपयोग नहीं कर रहा है।

सिरे से शुरू भी आप जानने में मदद करता;)

0

मैं एक फ़ाइल अद्यतन मुद्दा है।

2

यदि आप कोई जोड़ते हैं? index.php के बाद यह काम करता है?

http://example.com/index.php?/blog/comments 
0

मुझे एक ही समस्या थी। यह समाप्त हो गया कि मैंने कभी अपना पहला कार्य बंद नहीं किया - मैंने आखिरी बार छोड़ा}। तो जिस समारोह में मैंने बंद नहीं किया वह ठीक काम करता था लेकिन उसके बाद सबकुछ मुझे 404 दे रहा था।

1

एप्लिकेशन/config/config.php में $$ config ['uri_protocol'] विकल्पों में से कुछ को आजमाने के लायक है।

/* 
|-------------------------------------------------------------------------- 
| URI PROTOCOL 
|-------------------------------------------------------------------------- 
| 
| This item determines which server global should be used to retrieve the 
| URI string. The default setting of "AUTO" works for most servers. 
| If your links do not seem to work, try one of the other delicious flavors: 
| 
| 'AUTO'   Default - auto detects 
| 'PATH_INFO'  Uses the PATH_INFO 
| 'QUERY_STRING' Uses the QUERY_STRING 
| 'REQUEST_URI'  Uses the REQUEST_URI 
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO 
| 
*/ 
$config['uri_protocol'] = 'AUTO'; 

कुछ सर्वरों में विभिन्न विकल्पों के साथ समस्याएं हैं, इसलिए प्रत्येक मैन्युअल रूप से प्रयास करें। यह आपके मामले में काम नहीं कर सकता है लेकिन अतीत में मेरे लिए दिन बचा है।

2

मैं इस पुराने पोस्ट में बिना किसी अच्छे उत्तर के आया कि यह क्यों हो रहा था। मैं भी उसी स्पष्ट त्रुटि में आया जो आपने किया था और इसे ठीक करने के लिए संघर्ष कर रहा था। मुझे एहसास हुआ कि समस्या पहले से सीआई उदाहरणों में निर्धारित रूटिंग से आई थी। मेरे पेज पर सभी काम कर रहा था जब तक कि मैं config/routes.php अंदर निम्नलिखित लाइन कहा:

$['blog'] = 'blog'; 

इस लाइन है कि कुछ भी, अन्य समझता है क्या आप पहले से ही स्थापित किया था की तुलना में की वजह से है कि के लिए तर्क के रूप में, जड़:

$route['(:any)'] = 'pages/view/$1'; 

आप ऊपर लाइन निकालते हैं, तो यह सब काम करते हैं, जड़ को छोड़कर अब काम नहीं करेगा करेंगे के रूप में यह पिछले ट्यूटोरियल में किया था।

$route['blog/(:any)'] = 'blog/$1'; 
इन दोनों के दोनों कहा, आप रूट पर कार्यों फोन और अभी तक कर सकते हैं

भी एक काम कर "ब्लॉग" नियंत्रक है: मैं भी निम्न पंक्ति जोड़ने के लिए ताकि हम नियंत्रक के अंदर कार्यों कॉल कर सकते हैं किया था।

0

CodeIgniter अपने नियंत्रक का नाम (फ़ाइल नाम) के कुछ संस्करणों में बड़े अक्षर

जैसे के साथ शुरू किया जाना चाहिए ..

Blog.php 

यदि फ़ाइल का पहला अक्षर पूंजी नहीं है तो यह 404 त्रुटि दिखा सकता है।

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