Professional CodeIgniter, Thomas Myer
Chapter 3:                                                                            A 10,000 - Foot View of CodeIgniter        
48
Here ' s what that .htaccess file would look like. It basically contains instructions that allows certain files
and folders to be viewable on the web site:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|captcha|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L] 
If you are familiar with
mod_rewrite
in Apache, you will note that this rule ostensibly removes index
.php from the URL of any destination. Below, when you ' re configuring CodeIgniter (and particularly the 
config.php file), you ' ll see why this is a good idea.
config.php file), you ' ll see why this is a good idea.
If you ' re not familiar with
mod_rewrite
in Apache, don ' t be too intimidated by this file. Basically, the
.htaccess file sets forth a few rules, one of which removes index.php from all URLs. Other rules in the file 
allow the use of various other folders that you will need going forward (such as folders that contain CSS,
JavaScript, Captcha files, and images).
allow the use of various other folders that you will need going forward (such as folders that contain CSS,
JavaScript, Captcha files, and images).
The system/ Folder
The system/ folder is where all the action happens. This folder contains all the CodeIgniter code of
consequence, organized into various folders:
application
    --   The   application folder  contains the application you ' re building. Basically, this 
folder contains your models, views, controllers, and other code (like helpers and class 
extensions). In other words, this folder is where you ' ll do 99 percent of your work.
extensions). In other words, this folder is where you ' ll do 99 percent of your work.
cache
    --   The   cache folder  contains all cached pages for your application. In Chapter  9 , you learn 
more about caching and how to turn your super - speedy development application into a 
blazingly fast live application.
blazingly fast live application.
codeigniter
    --   The   codeigniter folder  is where CodeIgniter ' s core classes live. You have almost no 
reason to go in here. All of your work will occur in the application folder. Even if your intent is 
to extend the CodeIgniter core, you would do it with hooks, and hooks live in the application
folder.
to extend the CodeIgniter core, you would do it with hooks, and hooks live in the application
folder.
database
    --   The   database folder  contains core database drivers and other database utilities. Again, 
there ' s no good reason for you to be in this folder.  
fonts
    --   The   fonts folder  contains font - related information and utilities. Again, there ' s no reason 
to spend any time here.  
helpers
    --   The   helpers folder  contains standard CodeIgniter helpers (such as date, cookie, and 
URL helpers). You ' ll make frequent use of helpers in your CodeIgniter career and can even 
extend helpers thanks to improvements introduced in CodeIgniter version 1.6.
extend helpers thanks to improvements introduced in CodeIgniter version 1.6.
language
    --   The   language folder  contains language files. You can ignore it for now.  
libraries
    --   The   libraries folder  contains standard CodeIgniter libraries (to help you with e - mail, 
calendars, file uploads, and more). You can create your own libraries or extend (and even 
replace) standard ones, but those will be saved in the application/libraries directory to keep
them separate from the standard CodeIgniter libraries saved in this particular folder.
replace) standard ones, but those will be saved in the application/libraries directory to keep
them separate from the standard CodeIgniter libraries saved in this particular folder.
logs
    --   The   logs folder  is the folder CodeIgniter uses to write error and other logs to.  
c03.indd   48
c03.indd   48
6/10/08   5:33:46 PM
6/10/08   5:33:46 PM