CodeIgniter User Guide Version 2.2.0

CodeIgniter URLs

By default, URLs in CodeIgniter are designed to be search-engine and human friendly. Rather than using the standard "query string"
approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a segment-based approach:

example.com/news/article/my_article

Note: Query string URLs can be optionally enabled, as described below.

URI Segments

The segments in the URL, in following with the Model-View-Controller approach, usually represent:

example.com/class/function/ID

The first segment represents the controller class that should be invoked.

The second segment represents the class function, or method, that should be called.

The third, and any additional segments, represent the ID and any variables that will be passed to the controller.

The URI Class and the URL Helper
contain functions that make it easy to work with your URI data. In addition, your URLs can be remapped using the
URI Routing feature for more flexibility.

Removing the index.php file

By default, the index.php file will be included in your URLs:

example.com/index.php/news/article/my_article

You can easily remove this file by using a .htaccess file with some simple rules. Here is an example
of such a file, using the "negative" method in which everything is redirected except the specified items:

If you change "enable_query_strings" to TRUE this feature will become active. Your controllers and functions will then
be accessible using the "trigger" words you've set to invoke your controllers and methods:

index.php?c=controller&m=method

Please note: If you are using query strings you will have to build your own URLs, rather than utilizing
the URL helpers (and other helpers that generate URLs, like some of the form helpers) as these are designed to work with
segment based URLs.