कोडाइनाइटर - कोई इनपुट फ़ाइल निर्दिष्ट नहीं है


86

मैं Codeigniter में एक शुरुआत कर रहा हूं और मैंने एक सीआई ट्यूटोरियल देखा और बस एक साधारण काम करने की कोशिश कर रहा था। मैंने CI डाउनलोड किया और इस फाइल को कंट्रोलर डायरेक्टरी में जोड़ा, लेकिन यह काम नहीं करेगा।

<?php

class site extends CI_Controller
{
    public function index()
    {
        echo "Hello World";
    }

    function dosomething()
    {
        echo "Do Something";
    }   
}    
?>

जब मैं http: //..../index.php/site का उपयोग करके इसे एक्सेस करने का प्रयास करता हूं, तो मुझे आउटपुट मिलता है ... "कोई इनपुट फ़ाइल निर्दिष्ट नहीं है" .... वैसे, मैंने फ़ाइल का नाम site.php रखा है।


बाहर की जाँच की कोशिश करो इस लिंक और देखें कि क्या समस्या ठीक हो जाती।
Vap0r

इस प्रयास के लिए कोई मदद नहीं धन्यवाद
koool

जवाबों:


291

बस जोड़ें ? .htaccess फ़ाइल में index.php के बाद साइन इन करें:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

और यह काम करेगा!


मेरे लिए यह 301 पुनर्निर्देशित करता है और मैं URL में /? / के साथ अंत करता हूं।
Ade

@Ali मोहम्मद, आप कौन सी htaccess फाइल में इस लाइन को जोड़ते हैं? मैंने कोशिश की लेकिन उसका कोई असर नहीं हुआ
बहदेंग

1
@Bahdeng आपको अपनी परियोजना निर्देशिका में इस स्निपेट को .htaccess फ़ाइल में रखना होगा।
अली मोहम्मद

अपनी एप्लिकेशन डायरेक्टरी के अनुसार लाइन के ऊपर बदलाव करें जैसे कि यदि आप एप्लिकेशन रूट डायरेक्टरी पर नहीं हैं, तो उपरोक्त लाइन के स्थान पर निम्नलिखित कोड लिखेंRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

1
@NSGodMode कि index.php के अलावा CodeIgniter रूट निर्देशिका में होगा
अली मोहम्मद

58

Godaddy को होस्ट करने पर यह निश्चित लगता है .htaccess, स्वयं यह काम कर रहा है

RewriteRule ^(.*)$ index.php/$1 [L]

सेवा

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

अपने एप्लिकेशन डायरेक्टरी के अनुसार लाइन के ऊपर बदलाव करें जैसे कि यदि आप एप्लिकेशन रूट डायरेक्टरी पर नहीं हैं, तो उपरोक्त लाइन के स्थान पर निम्नलिखित कोड लिखेंRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

इसका मुझे 404 पेज मिल रहा है जो सीआई 3 के साथ नहीं मिला
निपुण त्यागी

38

मुझे इस प्रश्न का उत्तर यहां मिला ..... समस्या सर्वर होस्ट कर रही थी ... मैं सभी को धन्यवाद देता हूं जिन्होंने कोशिश की .... आशा है कि यह दूसरों की मदद करेगा

गोडैडी इंस्टालेशन टिप्स


अपनी एप्लिकेशन डायरेक्टरी के अनुसार लाइन के ऊपर बदलाव करें जैसे कि यदि आप एप्लिकेशन रूट डायरेक्टरी पर नहीं हैं, तो उपरोक्त लाइन के स्थान पर निम्नलिखित कोड लिखेंRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy

17

RewriteEngine, DirectoryIndex। CodeIgniter ऐप्स की .htaccess फ़ाइल

मैंने अभी .htaccess फ़ाइल सामग्री को बदला है और जैसा कि निम्नलिखित लिंक उत्तर में दिखाया गया है । और पृष्ठ को रीफ्रेश करने की कोशिश की (जो काम नहीं किया, और मेरे नियंत्रक से अनुरोध नहीं मिला) यह काम किया।

फिर सिर्फ अपने संदेह के कारण मैंने अपने सार्वजनिक Html फ़ोल्डर के अंदर अपने .htaccess में किए गए परिवर्तनों को मूल .htm सामग्री पर वापस कर दिया । तो यह अब इस प्रकार है (जो मूल रूप से यह था):

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

और अब यह भी काम करता है।

संकेत: ऐसा लगता है कि सर्वर के संदर्भ में पुनर्लेखन नियम स्पष्ट रूप से सेटअप नहीं किया गया है।

मेरी फ़ाइल संरचना इस प्रकार है:

/
|- gheapp
|    |- application
|    L- system
|
|- public_html
|    |- .htaccess
|    L- index.php

और index.phpमैंने सिस्टम और एप्लिकेशन के लिए निम्नलिखित पथ सेट किए हैं:

$system_path = '../gheapp/system';
$application_folder = '../gheapp/application';

नोट: ऐसा करने पर, हमारा एप्लिकेशन स्रोत कोड पहली बार में जनता के लिए छिपा हो जाता है।

कृपया, अगर आप लोगों को मेरे जवाब, टिप्पणी और मुझे फिर से सही करने के साथ कुछ भी गलत लगता है!
आशा है कि शुरुआती लोगों को यह उत्तर उपयोगी लगेगा।

धन्यवाद!


1

मेरी साइट को MochaHost पर होस्ट किया गया है, मेरे पास .htaccess फ़ाइल को सेटअप करने के लिए एक कठिन समय था ताकि मैं अपने url से index.php को हटा सकूं। हालांकि, कुछ गोलगप्पे खाने के बाद, मैंने इस धागे और अन्य उत्तरों पर जवाब जोड़ दिया। मेरी अंतिम कार्यशील .htaccess फ़ाइल में निम्नलिखित सामग्री है:

<IfModule mod_rewrite.c>
    # Turn on URL rewriting
    RewriteEngine On

    # If your website begins from a folder e.g localhost/my_project then 
    # you have to change it to: RewriteBase /my_project/
    # If your site begins from the root e.g. example.local/ then
    # let it as it is
    RewriteBase /

    # Protect application and system files from being viewed when the index.php is missing
    RewriteCond $1 ^(application|system|private|logs)

    # Rewrite to index.php/access_denied/URL
    RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]

    # Allow these directories and files to be displayed directly:
    RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|app_upload|assets|css|js|images)

    # No rewriting
    RewriteRule ^(.*)$ - [PT,L]

    # Rewrite to index.php/URL
    RewriteRule ^(.*)$ index.php?/$1 [PT,L]
</IfModule>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.