Saturday, July 16, 2016

Codeignitor .htaccess url Rewriting

The Local Solution for Local Server(Localhost)



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


The only change you need to make is to "ci" (on lines 2 and 5) which is the folder where you have your CodeIgniter application installed. In brief, this rewrite file tells your web server to apply the rewrite rule whenever a file or a directory is not found on the server. For example, if you invoke URL "c", the "contact" folder is not found on your server (Since CodeIgniter files are in the "system" folder), and accordingly the URL is rewritten to "d". This rewrite allows CodeIgniter to execute successfully (By using URL "d") while giving you the benefits of shorter URLs (URL "c").
i) http://localhost/ci/contact
ii) http://localhost/ci/index.php/contact

The Online Solution for Online Server 


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


There are no changes that you need to make for this .htaccess file. However, there's one important note to mention. The question mark after "index.php" on line 5 is needed on my online hosting account at Dreamhost. You might want to remove it if it doesn't work on yours. Again, I didn't have the time to investigate why this is the case. Please check the additional resources for more details.




No comments:

Post a Comment