2013-01-12 15 views
7

मेरी निर्देशिका संरचना/var/www/CI/सभी फ़ोल्डर्स जैसे अनुप्रयोग, सिस्टम सीआई के तहत सिस्टम है। सीआई के तहत एक .htaccess फ़ाइल बनाई है।CodeIgniter URL से index.php को हटा नहीं सकता

.htacess में कोड निम्नलिखित है।

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond $1 !^(index\.php|public|images|robots\.txt|css) 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

अभी भी लोकलहोस्ट/सीआई/ब्लॉग 404 त्रुटि देता है। क्या कोई इस बात का मार्गदर्शन कर सकता है कि यह नियम गलत है?

$config['index_page'] = ''; 

इसके अलावा इस कार्य करें::

उत्तर

26

निम्नलिखित

सबसे पहले करने का प्रयास करें .. आप निम्नलिखित की तरह कॉन्फ़िग फ़ाइल सेट सुनिश्चित करें,

$config['index_page'] = ''; 

भी सुनिश्चित करें कि mod_rewrite httpd.conf फाइल में सक्षम किया गया है और उसके बाद, अपनी .htaccess फ़ाइल को ओवरराइट करें जो आपके प्रोजेक्ट रूट फ़ोल्डर को निम्न कोड के साथ अनुप्रयोग फ़ोल्डर में नहीं है ..

RewriteEngine on 
RewriteCond $1 !^(index\.php|public|\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?$1 
+0

यह मेरे लिए एक आकर्षण की तरह काम किया! धन्यवाद! – JunaidKirkire

+0

आप का स्वागत है –

+0

मुझे कई ब्लॉग फेंक दिए गए हैं और इस उत्तर की तलाश में पोस्ट कर रहे हैं और आप ही अकेले हैं जिनके पास सही जवाब था और साथ ही यह करना बहुत स्पष्ट था कि क्या करना है। आपको बहुत - बहुत धन्यवाद! –

3

अपने application/config/config.php फ़ाइल में सुनिश्चित करें कि यह इस प्रकार सेट कर दिया जाता

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond $1 !^CI/(index\.php|public|images|robots\.txt|css) 
    RewriteRule ^CI/(.*)$ CI/index.php/$1 [L] 
</IfModule> 
आमतौर पर आप अपनी निर्देशिका में सीआई रख दिया और डाल नहीं

application और system रूट फ़ोल्डर में।

+0

उपर्युक्त लेकिन अभी भी काम नहीं कर रहा था। क्या कोई अन्य जगह भी है जिसे कॉन्फ़िगर करने की आवश्यकता है? – JunaidKirkire

+0

सलाह के लिए धन्यवाद गुप्त। मैं इसकी सराहना करता हूं। – JunaidKirkire

3

अपने अपाचे कॉन्फ़िगरेशन की जांच करें ताकि यह ओवरराइड की अनुमति दे। यदि AllowOverrideNone पर सेट है, तो पुनर्लेख आपके लिए काम नहीं करेगा।

अपने httpd.conf (नहीं अपनी .htaccess) के लिए निम्नलिखित शामिल करने से आपकी समस्या को ठीक करना चाहिए

<Directory "/"> 
    AllowOverride All 
</Directory> 

मुझे पता है अगर यह अभी भी काम नहीं कर रहा हूँ।

+0

अगर मैं गलत हूं तो कृपया मुझे सही करें लेकिन यह httpd.conf नहीं होना चाहिए? इसके अलावा मेरी httpd.conf फ़ाइल खाली है। – JunaidKirkire

+0

मेरे प्रश्न का उत्तर देने के लिए समय निकालने के लिए धन्यवाद। मैं इसकी सराहना करता हूं। – JunaidKirkire

+0

क्षमा करें, मेरी गलती ... यह httpd.conf है! मैंने अपना जवाब तय कर दिया। मुझे उम्मीद है कि यह समाधान मदद करता है। – ashiina

1

निम्न चरणों का उपयोग करें,
1. दस्तावेज़ रूट में .htaccess फ़ाइल बनाएं [myroot_folder/.htaccess]।
2।application/config/config.php में कॉन्फ़िग फ़ाइल खोलने के लिए और निम्नलिखित

$config['index_page'] = ''; 

अपने आधार यूआरएल से index.php को दूर करना
अगर यह $config['base_url']= 'http://localhost/myroot_folder/index.php';
$config['base_url']= 'http://localhost/myroot_folder/';

अब करने के लिए परिवर्तन यह .htaccess फ़ाइल को खोलने और निम्नलिखित जोड़ें है कोड ब्लॉक

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] 
-1

आप सभी काम नहीं किया है, लेकिन है कि आप वैसा ही किया, इस प्रयास करें:

बदलें AllowOverride कोई नहींAllowOverride /etc/apache2/साइटों से उपलब्ध/डिफ़ॉल्ट में आभासी मेजबान फ़ाइल के सभी को

Details here

1

यह काम करता है। हालांकि, कृपया सुनिश्चित करें अपने mod_rewrite सक्षम किया गया है,

  1. अपाचे के स्थापना फ़ोल्डर के अंदर C:\wamp\bin\apache\apache2.4.9\conf फ़ोल्डर के अंतर्गत httpd.conf फ़ाइल का पता लगाएं।
  2. फ़ाइल में निम्न पंक्ति #LoadModule rewrite_module modules/mod_rewrite.so खोजें। आप इसे "mod_rewrite" कीवर्ड खोजकर आसानी से कर सकते हैं।
  3. लाइन की शुरुआत में # हटाएं, # दर्शाता है कि उस पंक्ति पर टिप्पणी की गई है।
  4. फिर अपाचे सर्वर को पुनरारंभ करें।
  5. phpinfo() करते समय लोड किए गए मॉड्यूल अनुभाग में अब आप mod_rewrite देख सकते हैं।
0
1) make .htaccess file and put this code 

    RewriteEngine on 
    RewriteCond $1 !^(index\.php|resources|robots\.txt) 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

2) change 

$config['index_page'] = ''; 
remove index.php present in config.php file 

3) rewrite on from your server 
संबंधित मुद्दे