मैं "index.php"
केंद्र में कहीं पर कोडिग्निटर में हर पथ में चिपके हुए को कैसे निकालूं ? मुझे क्लीन नॉन चाहिए index.php-fied URLs
?
मैं "index.php"
केंद्र में कहीं पर कोडिग्निटर में हर पथ में चिपके हुए को कैसे निकालूं ? मुझे क्लीन नॉन चाहिए index.php-fied URLs
?
जवाबों:
यदि आप अपाचे को अपनी रूट वेब निर्देशिका में एक .htaccess फ़ाइल का उपयोग कर रहे हैं, जिसमें निम्नलिखित हैं:
RewriteEngine on
RewriteCond $1 !^(index\.php|[Javascript / CSS / Image root Folder name(s)]|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
एक और अच्छा संस्करण यहाँ स्थित है:
RewriteCond $1 !^\/(index\.php|assets|robots\.txt)
Index.php को हटाने के साथ मेरे कुछ बड़े मुद्दे थे। एक सामान्य नियम के रूप में .htaccess को कई सर्वरों पर परीक्षण किया गया है और आम तौर पर काम करता है:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
<Files "index.php">
AcceptPathInfo On
</Files>
यदि आपके पास इसके साथ कोई भाग्य नहीं है, तो अगला कदम आपकी कॉन्फ़िगरेशन फ़ाइल को समायोजित करना है। कुछ अन्य URI प्रोटोकॉल जैसे प्रयास करें
| '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'] = 'ORIG_PATH_INFO';
यदि आपका अभी भी कोई भाग्य नहीं है, तो अपने सबफ़ोल्डर को शामिल करने के लिए पुनर्लेखन नियम को बदलने का प्रयास करें। यह अक्सर एक समस्या है यदि आपका एक देव सर्वर पर एक अस्थायी यूआरएल का उपयोग कर रहा है:
RewriteRule ^(.*)$ /subofolder1/subfolder2/index.php/$1 [L]
बस इन विकल्पों के साथ खेलते हैं, एक को काम करना चाहिए। यह भी सुनिश्चित करें कि आपकी इंडेक्स फ़ाइल निम्न पर सेट है:
$config['index_page'] = '';
सौभाग्य!
Index.php फ़ाइल के साथ एप्लिकेशन रूट निर्देशिका में .htaccess फ़ाइल रखें। (जांचें कि क्या htaccess एक्सटेंशन सही है, Bz htaccess.txt ने मेरे लिए काम नहीं किया।)
और .htaccess फ़ाइल में निम्नलिखित नियम जोड़ें,
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
फिर अपने आवेदन / विन्यास / config.php फ़ाइल में निम्न पंक्ति खोजें
$config['index_page'] = 'index.php';
नीचे के रूप में चर सेट करें।
$config['index_page'] = '';
यही है, इसने मेरे लिए काम किया।
यदि यह इन पैरामीटर्स ('AUTO', 'PATH_INFO', 'QUERY_STRING', 'REQUEST_URI', और 'ORIG_PATH_INFO') को एक-एक करके बदलने की कोशिश नहीं करता है
$config['uri_protocol'] = 'AUTO';
में एक नज़र system\application\config\config.php
फ़ाइल, वहाँ नाम के एक चर रहा हैindex_page
इसे ऐसा दिखना चाहिए
$config['index_page'] = "index.php";
इसे बदलो
$config['index_page'] = "";
फिर जैसा कि आपको बताया गया है कि आपको .htaccess
फ़ाइल में एक पुनर्लेखन नियम जोड़ना होगा
नोट: CodeIgniter v2 में यह फाइल सिस्टम फोल्डर से बाहर ले जाया गया था application\config\config.php
उपरोक्त सभी तरीकों मेरे लिए विफल रही है और उसके बाद मैंने पाया कि मैं नहीं बदल रहा था AllowOverride कोई नहीं करने के लिए AllowOverride सभी पर अपने आभासी मेजबान फ़ाइल में / etc / apache2 / साइटों से उपलब्ध / डिफ़ॉल्ट
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All <---- replace None with All
</Directory>
<Directory /var/www >
Options Indexes FollowSymLinks MultiViews
AllowOverride All <--- replace None with All
Order allow,deny
allow from all
</Directory>
...
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /codeigniter/index.php/$0 [PT,L]
रीटराइट नियम को बदलने के बाद। * index.php / $ 0 [PT, L] प्रोजेक्ट फ़ोल्डर नाम "ignigniter "के साथ। यह मेरे लिए काम कर रहा है। आपके समर्थन के लिए धन्यवाद दोस्तों।
चरण 1 => अपनी .htaccess फ़ाइल को रूट फ़ोल्डर में रखें जहाँ एप्लिकेशन और सिस्टम फ़ोल्डर मौजूद हैं।
चरण 2 => यदि आपका वेब पथ उप-फ़ोल्डर का उपयोग कर रहा है जैसे - yourdomain.com/project/ - तो htaccess फ़ाइल में निम्न कोड का उपयोग करें
RewriteEngine on
RewriteBase /project/
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /project/index.php/$1 [L]
यदि आपका वेब पथ रूट-फ़ोल्डर का उपयोग कर रहा है जैसे - yourdomain.com - तो htaccess फ़ाइल में निम्न कोड का उपयोग करें
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
बस मैंने सोचा कि मैं जोड़ सकता हूँ
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
.htaccess होगा और निम्नलिखित तरीके से अपने एप्लिकेशन / config.php वैरिएबल को संपादित करना सुनिश्चित करें:
बदलने के
$config['uri_protocol'] = “AUTO”
साथ में
$config['uri_protocol'] = “REQUEST_URI”
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
यह निश्चित रूप से काम करना चाहिए .. एक कोशिश है
सुनिश्चित करें कि आपने सक्षम किया है mod_rewrite
(मैं नहीं था)।
सक्षम करने के लिए:
sudo a2enmod rewrite
इसके अलावा, की जगह AllowOverride None
सेAllowOverride All
sudo gedit /etc/apache2/sites-available/default
अंत में ...
sudo /etc/init.d/apache2 restart
मेरा व्हाट्सएप है
RewriteEngine on
RewriteCond $1 !^(index\.php|[assets/css/js/img]|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
actions
: stackoverflow.com/questions/14419757/…
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
यह मेरी सीआई परियोजनाओं में से एक के लिए एक .htaccess है:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)
RewriteRule ^(.*)$ /projectFolder/index.php/$1 [L]
अंतिम पंक्ति आपको वह देनी चाहिए जो आपको आवश्यक है, हालांकि आपके फ़ोल्डर की संरचना कैसे सेट की जाती है, इसके आधार पर आपको 'प्रोजेक्ट प्रोजेक्टर' की आवश्यकता हो सकती है या नहीं भी। सौभाग्य!
सीआई विकि से इस ट्यूटोरियलmod_rewrite
में निर्देशानुसार प्रयोग करें ।
एक .htaccess फ़ाइल के रूप में, कोहना फ्रेमवर्क द्वारा दिए गए एक का उपयोग करने के लिए एक अच्छा विकल्प है :
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase /
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|system)\b.* index.php/$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
यह एक अच्छी तरह से सोचा गया है। सिर्फ काम करता है।
Codeigniter के लिए url पथ में index.php को हल करने के दो तरीके हैं
1: config / config.php में परिवर्तन कोड:
$config['index_page'] = 'index.php';
सेवा
$config['index_page'] = '';
2: यदि बनाया नहीं है तो रूट पथ में .htacess बनाएँ: निम्नलिखित कोड की प्रतिलिपि बनाएँ: -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
इसे सहेजें और फिर अपने अपाचे कॉन्फ़िगरेशन में फिर से जांचें re_ite_module या mod_rewrite सक्षम है। यदि नहीं तो कृपया सक्षम करें। (बेस्ट अनडच)!
मैं कई अलग होस्टिंग पर apache2 पर यह परीक्षण किया है और यह बहुत अच्छा काम करता है।
इस htaccess का उपयोग करें
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
सुनिश्चित करें कि आपके पास enabled mod_rewirte
एक हैphpinfo();
फिर इसे config / config.php में करें:
$config['index_url'] = '';
|
| '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';
यदि यह अभी तक काम नहीं करता है, तो 40/54 लाइन पर $config['uri_protocol']='AUTO'
सूचीबद्ध application/config/config.php
फ़ाइल के अंदर से किसी एक को बदलने का प्रयास करें :
कभी-कभी मैंने इस्तेमाल किया: REQUEST_URI
बजाय AUTO
या "QUERY_STRING"
गोएड्डी होस्ट के
एक नज़र डालें जो \application\config\config.php
फ़ाइल, वहाँ नाम के एक चर रहा हैindex_page
इसे ऐसा दिखना चाहिए
$config['index_page'] = "index.php";
इसे बदलो
$config['index_page'] = "";
फिर जैसा कि आपको बताया गया है कि आपको .htaccess
इस तरह फाइल में एक पुनर्लेखन नियम जोड़ना होगा:
RewriteEngine on
RewriteCond $1 !^(index\\.php|resources|robots\\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
यह मेरे लिए काम करता है, आशा है कि आप भी।
यदि आप linux पर हैं और apache2 सर्वर का उपयोग कर रहे हैं, तो हमें .htaccess फ़ाइल में परिवर्तन के साथ-साथ apache2.conf फ़ाइल को भी ओवरराइड करना पड़ सकता है। Apet2 कॉन्फ़िगरेशन फ़ाइल /etc/apache2/apache2.conf पर खोजें ।
खोज निर्देशिका / var / www / Change AllowOverride कोई नहीं -> AllowOverride सभी
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory
अपने रूट वेब निर्देशिका में .htaccess फ़ाइल रखें
जो कुछ भी आप कर रहे हैं - यदि ऊपर से मुलाकात नहीं की जाती है - तो यह काम नहीं करेगा। आमतौर पर सिस्टम फ़ोल्डर में इसकी जड़ में होना चाहिए। चीयर्स!
application
रूट के बजाय निर्देशिका में आती हैं ।
मैं कई समाधानों की कोशिश कर चुका हूं, लेकिन मैं इसके साथ आया हूं:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|jquery|js|robots \.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
यह iwill आवश्यकतानुसार url से index.php को हटा देता है।
मैं .htaccess
फ़ाइल में इन पंक्तियों का उपयोग करता हूं ; जो मैं रूट फ़ोल्डर में रखता हूं
RewriteEngine on
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
तब मैं http://example.com/controller/function/parameter एक्सेस कर सकता हूं
http://example.com/index.php/controller/function/parameter के बजाय
यह आपको इस कोड को .htacess फ़ाइल में एप्लिकेशन फ़ोल्डर में पेस्ट करने में मदद करेगा
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
<Files "index.php">
AcceptPathInfo On
</Files>
<IfModule mod_php5.c>
php_value short_open_tag 1
</IfModule>
इसने मुझे पूरा जादू किया:
RewriteEngine on
RewriteBase /
# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
आशा करता हूँ की ये काम करेगा!
हाय यह एक मुझे काम किया
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /folder/index.php?/$1 [L]
साथ में यह भी
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /folder/index.php?/$1 [L]
यदि फ़ोल्डर इस उप-कोड का नाम है, तो यह कोडिग्नेटर एप्लिकेशन को उप डोमेन के रूप में होस्ट किया जाता है जैसे डोमेन नाम / फ़ोल्डर / इंडेक्स। एफपीपी।
उम्मीद है वह आप के काम आएगा। धन्यवाद।
पिछले कोड को अपने .htaccess में कॉपी करें
RewriteEngine on
Options -Indexes
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Foldername of your ci/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
चरण 1 :
इसे htaccess फ़ाइल में जोड़ें
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
चरण 2 :
Codeigniter config में index.php निकालें
$config['base_url'] = '';
$config['index_page'] = '';
चरण 3 :
Apache कॉन्फ़िगरेशन (कमांड) में htaccess को ओवरराइड करने की अनुमति दें
sudo nano /etc/apache2/apache2.conf और फ़ाइल संपादित करें और इसमें बदलाव करें
AllowOverride All
www फ़ोल्डर के लिए
चरण 4 :
सक्षम अपाचे मॉड रीराइट (कमांड)
सुडो a2enmod फिर से लिखना
चरण 5:
रिस्टार्ट अपाचे (कमांड)
sudo /etc/init.d/apache2 restart