আমি "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)
আমার সূচি.এফপি অপসারণ নিয়ে কিছু বড় সমস্যা ছিল। একটি সাধারণ নিয়ম হিসাবে নীচে .htaccess কয়েকটি সার্ভারে পরীক্ষা করা হয়েছে এবং সাধারণত কাজ করে:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
<Files "index.php">
AcceptPathInfo On
</Files>
যদি আপনার সাথে ভাগ্য না থাকে তবে পরবর্তী পদক্ষেপটি আপনার কনফিগার ফাইলটি সামঞ্জস্য করা। অন্যান্য কয়েকটি ইউআরআই প্রোটোকল যেমন চেষ্টা করুন
| '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';
যদি আপনার এখনও ভাগ্য না থাকে তবে আপনার সাবফোল্ডারটি অন্তর্ভুক্ত করতে পুনরায় রুলটি পরিবর্তন করার চেষ্টা করুন। আপনি যদি কোনও ডেভ সার্ভার ইত্যাদিতে অস্থায়ী URL ব্যবহার করেন তবে এটি প্রায়শই সমস্যা হয়:
RewriteRule ^(.*)$ /subofolder1/subfolder2/index.php/$1 [L]
এই বিকল্পগুলির সাথে খালি খেলেই কাজ করা উচিত। এছাড়াও, আপনার সূচী ফাইলটি সেট করা আছে তা নিশ্চিত করুন:
$config['index_page'] = '';
শুভকামনা!
সূচক.এফপি ফাইলের সাথে অ্যাপ্লিকেশন রুট ডিরেক্টরিতে। (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
ফাইলে একটি পুনর্লিখনের নিয়মও যুক্ত করতে হবে
দ্রষ্টব্য: কোডআইগনিটার ভি 2-তে এই ফাইলটি সিস্টেম ফোল্ডারের বাইরে চলে গেছে application\config\config.php
উপরের সমস্ত পদ্ধতি আমার জন্য ব্যর্থ হয়েছিল এবং পরে আমি দেখতে পেলাম যে আমি আমার ভার্চুয়াল হোস্ট ফাইলে / etc / apache2 / সাইট-উপলভ্য / ডিফল্টে AllowOverride কিছুই নেই AllowOverride- এ পরিবর্তন করছি না
<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]
RewritRule পরিবর্তন করার পরে। * index.php / $ 0 [পিটি, এল] প্রজেক্ট ফোল্ডারের নাম "কোডইনিটার"। আমার সাথে কাজ করছে। আপনার সমর্থনের জন্য ধন্যবাদ ছেলেরা।
পদক্ষেপ 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
Finaly ...
sudo /etc/init.d/apache2 restart
আমার .htaccess হয়
RewriteEngine on
RewriteCond $1 !^(index\.php|[assets/css/js/img]|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
actions
: স্ট্যাকওভারফ্লো.
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]
এটি একটি সুচিন্তিত। Htaccess যা কেবল কাজ করে।
কোডইনিটারের জন্য url পাথে index.php সমাধান করার দুটি উপায় রয়েছে
1: কনফিগারেশন / কনফিগারেশন.এফপি কোড পরিবর্তন করুন:
$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>
এটি সংরক্ষণ করুন এবং তারপরে আপনার অ্যাপাচি কনফিগারেশনটি পরীক্ষা করুন পুনর্লিখন_মডিউল বা মোড_প্রিটটি সক্ষম করা হয়েছে f তবে যদি না দয়া করে সক্ষম হয়। (সেরা পদ্ধতির)!
আমি এটিকে অ্যাপাচি 2 তে বিভিন্ন ভিন্ন হোস্টিংয়ে পরীক্ষা করেছি এবং এটি দুর্দান্ত কাজ করে।
এই htaccess ব্যবহার করুন
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
আপনি enabled mod_rewirte
একটি সঙ্গে নিশ্চিত হনphpinfo();
তারপরে এটি কনফিগারেশনে / কনফিগারেশন করুন:
$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]
এটা আমার জন্য কাজ, আপনিও আশা করি।
আপনি যদি লিনাক্সে থাকেন এবং অ্যাপাচি 2 সার্ভার ব্যবহার করে থাকেন তবে আমাদের .htaccess ফাইলের পরিবর্তনের পাশাপাশি অ্যাপাচি 2 সিফ ফাইলটি ওভাররাইড করতে হবে। /Etc/apache2/apache2.conf এ অ্যাপাচি 2 কনফিগারেশন ফাইলটি সন্ধান করুন ।
ডিরেক্টরি অনুসন্ধান / var / www / ওভাররাইড কিছুই অনুমোদন করুন না -> AllverOverride সব
<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]
এটি প্রয়োজন অনুসারে 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]
এই কোডিগাইনটার অ্যাপ্লিকেশনটি একটি সাবডোমেন যেমন হোস্ট করা থাকলে যেমন ফোল্ডারটি সাবফোল্ডারের নাম domain
আশা করি এটি আপনার পক্ষে কাজ করে। ধন্যবাদ।
আপনার .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>
ধাপ ২ :
কোডাইনাইটার কনফিগারেশনে সূচি.এফপি সরান
$config['base_url'] = '';
$config['index_page'] = '';
ধাপ 3 :
অ্যাপাচি কনফিগারেশন (কমান্ড) এ ওভাররাইডিং htaccess মঞ্জুরি দিন
sudo ন্যানো /etc/apache2/apache2.conf এবং ফাইলটি সম্পাদনা করুন এবং এতে পরিবর্তন করুন
AllowOverride All
www ফোল্ডারের জন্য
পদক্ষেপ 4:
সক্ষম অ্যাপাচি মোড পুনর্লিখন (কমান্ড)
sudo a2enmod পুনর্লিখন
পদক্ষেপ 5:
অ্যাপাচি পুনরায় চালু করুন (কমান্ড)
sudo /etc/init.d/apache2 restart