2012-04-28 11 views
7

मैं subdirecotry www.siteb.com/rexona में सीआई स्थापित किया हैCodeigniter कोई इनपुट फ़ाइल निर्दिष्ट त्रुटि

मेरे www.siteb.com/rexona अंदर .htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /rexona 

#Removes access to the system folder by users. 
#Additionally this will allow you to create a System.php controller, 
#previously this would not have been possible. 
#‘system’ can be replaced if you have renamed your system folder. 
RewriteCond %{REQUEST_URI} ^system.* 
RewriteRule ^(.*)$ /index.php/$1 [L] 

#Checks to see if the user is attempting to access a valid file, 
#such as an image or css document, if this isn’t true it sends the 
#request to index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
#This last condition enables access to the images and css folders, and the robots.txt file 
#Submitted by Michael Radlmaier (mradlmaier) 
RewriteCond $1 !^(index\.php|images|robots\.txt|css) 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 

ErrorDocument 404 /index.php 
</IfModule> 

config.php में:

$config['index_page'] = ''; 
$config['base_url'] = ''; 
$config['uri_protocol'] = 'AUTO'; 

जब भी मैं पहुँच नियंत्रकों की कोशिश मैं कोई इनपुट फ़ाइल निर्दिष्ट। हालांकि यह डिफ़ॉल्ट नियंत्रक लोड करता है, लेकिन मैं डिफ़ॉल्ट नियंत्रक में किसी भी विधि का उपयोग नहीं कर सकता।

किसी भी विचार? धन्यवाद।

उत्तर

24

आपके uri_protocol को कुछ सेट करने की आवश्यकता है - कम से कम इसे ऑटो पर सेट करें।

आपको जो त्रुटि मिल रही है वह है क्योंकि PHP सीजीआई के रूप में चलता है जिसका अर्थ है कि आपको URL को फिर से लिखना होगा index.php?/$1 इसके बजाय (प्रश्न चिह्न पर ध्यान दें)।

+0

यह अभी भी काम करेगा यदि मैं एक सर्वर पर कोड ले जाऊंगा जहां PHP अपाचे मॉड्यूल के रूप में चलता है? –

+0

@ पीटर अगर 'uri_protocol'configuration ऑटो पर सेट है, तो मुझे संदेह होगा कि यह करता है। हालांकि, जब सर्वर किसी अन्य का उपयोग करता है, तो मैं एक प्रकार के कार्यान्वयन के लिए विशिष्ट सर्वर सेटिंग्स का उपयोग करने की अनुशंसा नहीं करता। – Repox

+0

धन्यवाद, यह लाइव होस्टिंग पर काम करता है और असमर्थ लोड गतिशील लाइब्रेरी से संबंधित त्रुटि त्रुटि गायब हो जाती है –

1

आपका $config['uri_protocol'] खाली नहीं होना चाहिए। डिफ़ॉल्ट AUTO है, एक खाली स्ट्रिंग में गुजरने से मूल यूआरआई कक्षा टूट जाएगी, जिसका उपयोग राउटर क्लास के माध्यम से आपके अनुरोधों को रूट करने के लिए किया जाता है।

/* 
|-------------------------------------------------------------------------- 
| 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'; 

टिप्पणी के रूप में कहते हैं: "अपने लिंक काम करने के लिए नहीं लग रहे हैं, तो अन्य स्वादिष्ट जायके में से एक कोशिश"।
खाली स्ट्रिंग उन स्वादों में से एक नहीं है, यह $_SERVER[''] से पढ़ने की कोशिश कर रही है, जो आम तौर पर खाली होने जा रही है।

+0

हाय, मैंने सभी विकल्पों की कोशिश की लेकिन सफलता के बिना .... समस्या कहां हो सकती है? क्या यह। Htaccess या सीआई विन्यास या सर्वर है ...? – fjckls

+0

Thnks, इसे ऑटो पर छोड़ दिया। किसी कारण से मैंने सोचा कि इसे खाली छोड़कर इसे डिफ़ॉल्ट पर सेट कर दिया जाएगा। – fjckls

+0

सीआई के स्रोत कोड को देखने से, मुझे कोई कारण नहीं दिख रहा था कि एक खाली स्ट्रिंग "ऑटो" के समान काम क्यों नहीं कर सका। मैं व्यक्तिगत रूप से सोचता हूं कि यह समझ में आता है और अन्य कॉन्फ़िगरेशन आइटम्स के साथ अधिक सुसंगत होगा, ऐसा लगता है कि उन्होंने ऐसा करने का फैसला किया है। –

3

Godaddy होस्टिंग, यह on.htaccess तय, अपने आप को लगता है यह बदलकर काम कर रहा है:

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

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

यह मेरे लिए काम किया। बहुत बहुत धन्यवाद। – kanchan

0

मैं hostinger मुक्त खाते में एक ही त्रुटि मिलना द्वारा प्रस्तुत मुद्दे के साथ हल जॉन फू ऊपर।

मेरी .htaccess

RewriteBase /MY_SUBFOLDER_UNDER_HTML_DIRECTORY/ 
RewriteEngine on 

RewriteBase /mY_subfolder/ 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$0 [QSA,L] 

यह काम ठीक, बहुत बहुत शुक्रिया!

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