CodeIgniter .htaccess Setup

On April 20, 2011, in Articles, CodeIgniter, by Jose

CodeIgniter provides the option to use Search Engine friendly URL’s in your application. Search Engine friendly URL’s let’s spiders index your site better and are visually more attractive.

mod_rewrite and the Index page

Before anything else, make sure you have mod_rewrite enabled on your server. Once that’s taken care of, edit your index.php file and set $config['index_page'] to blank.

index.php

[sourcecode]

$config['index_page'] = ”;

[/sourcecode]

Creating the .htaccess file

Go to your root directory, create a file called “.htaccess” and paste the following.

[sourcecode]
# Set the default file for indexes
DirectoryIndex index.php

# mod_rewrite rules
RewriteEngine on

# The RewriteBase of the system (if you are using this system in a sub-folder).
# RewriteBase /SubFolderName/

# This will make the site only accessible without the “www.”
# (which will keep the subdomain-sensive config file happy)
# If you want the site to be accessed WITH the “www.”
# comment-out the following two lines.
# RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]
# RewriteRule ^(.*)$ http://site.com/$1 [L,R=301]

# If a controller can’t be found – then issue a 404 error from PHP
# Error messages (via the “error” plugin)
# ErrorDocument 403 /index.php/403/
# ErrorDocument 404 /index.php/404/
# ErrorDocument 500 /index.php/500/

# Deny any people (or bots) from the following sites: (to stop spam comments)
# RewriteCond %{HTTP_REFERER} nienschanz\.ru [NC,OR]
# RewriteCond %{HTTP_REFERER} porn\.com
# RewriteRule .* – [F]
# Note: if you are having trouble from a certain URL just
# add it above to bock all visitors from that site.

# Or you can also uncomment this if you know the IP:
# Deny from 192.168.1.1

# If the file is NOT the index.php file
RewriteCond %{REQUEST_FILENAME} !index.php

# Hide all PHP files so none can be accessed by HTTP
RewriteRule (.*)\.php$ index.php/$1

# If the file/dir is NOT real go to index
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

# If mod_rewrite is NOT installed go to index.php

ErrorDocument 404 index.php
[/sourcecode]

Download the files and test it out.

If you found this article useful, please share your comments below.

4 Responses to CodeIgniter .htaccess Setup

Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...