By default, URLs in CodeIgniter are designed to be search-engine and human friendly.
Setting your own routing rules
Routing rules are defined in routes.php file in your
application/config/ file. In it you'll see an
$route array, it permits you to specify your own routing criteria. Routes can either be specified using
There are two types of wildcards:
:numwill match a segment containing only numbers.
:anywill match a segment containing any character (except for '/', which is the segment delimiter).
Below the few routing examples:
$route['about'] = 'page';
A URL containing the word "about" in the first segment will be remapped to the "page" class.
$config['blog/saarthak'] = 'blog/user/25';
A URL containing the segments
blog/saarthak will be remapped to the "blog" class and the "user" method. The ID will be set to "25".
$route['product/(:num)'] = 'catalog/productDetail/$1';
A URL with "product" as the first segment, and a number in the second will be remapped to the "catalog" class and the "productDetail" method passing in the match as a variable to the method.
We can use regular expressions to define your routing rules. Any valid regular expression is allowed, as are back-references.
$route['products/([a-z]+)/(\d+)'] = '$1/id_$2';
In the above example, a URI similar to products/shirts/123 would instead call the "shirts" controller class and the "id_123" method.
There are three reserved routes:
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = 'FALSE';