Uniform Resource Identifier or URI consists of a string of character used to name a resource on the Internet. The name of a resource on the Internet should be naming conventional so that Search Engine like google , yahoo, ask etc. can easily find out. And it can be possible if we arrange the URI perfectly following some rules of URI Routing. In CodeIgniter the segments in a URI normally follow a pattern like this -
http://www.mysite.com/myclass/myfunction/myparam
Suppose that we have a URL like below -
http://localhost/TestingServer/home/chidc/mid/4/sid/11/chid/12
where “http://localhost/TestingServer/” is our BASE URL and others are segments. If we describe the above URI following the CodeIgniter pattern -
Now we will apply our own routing rules to the above URL.
In CodeIgniter routing rules are defined in application/config/routes.php file.
// routes.php
<?php if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);
/*
| ————————————————————————-
| URI ROUTING
| ————————————————————————-
| This file lets you re-map URI requests to specific controller functions.
|
| Typically there is a one-to-one relationship between a URL string
| and its corresponding controller class/method. The segments in a
| URL normally follow this pattern:
|
| example.com/class/method/id/
|
| In some instances, however, you may want to remap this relationship
| so that a different class/function is called than the one
| corresponding to the URL.
|
| Please see the user guide for complete details:
|
| http://codeigniter.com/user_guide/general/routing.html
|
| ————————————————————————-
| RESERVED ROUTES
| ————————————————————————-
|
| There are two reserved routes:
|
| $route['default_controller'] = ‘welcome’;
|
| This route indicates which controller class should be loaded if the
| URI contains no data. In the above example, the “welcome” class
| would be loaded.
|
| $route['scaffolding_trigger'] = ‘scaffolding’;
|
| This route lets you set a “secret” word that will trigger the
| scaffolding feature for added security. Note: Scaffolding must be
| enabled in the controller in which you intend to use it. The reserved
| routes must come before any wildcard or regular expression routes.
|
*/
$route['default_controller'] = “home”;
$route['scaffolding_trigger'] = “”;
/* End of file routes.php */
/* Location: ./system/application/config/routes.php */
?>
Here $route is an array by which we can specify our own routing rules. Now we are going to specify our own routing rules below -
$route['childmenu/([0-9]+)/([0-9]+)/([0-9]+)’] = “home/chidc/mid/$1/sid/$2/chid/$3″;
Here segments childmenu and regular expressions will be remapped to the ‘home’ class , ‘chidc’ function and three params value ‘mid’, ‘sid’, ‘chid’.
By adding above code to routes.php file -
// modified routes.php
<?php if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);
/*
| ————————————————————————-
| URI ROUTING
| ————————————————————————-
| This file lets you re-map URI requests to specific controller functions.
|
| Typically there is a one-to-one relationship between a URL string
| and its corresponding controller class/method. The segments in a
| URL normally follow this pattern:
|
| example.com/class/method/id/
|
| In some instances, however, you may want to remap this relationship
| so that a different class/function is called than the one
| corresponding to the URL.
|
| Please see the user guide for complete details:
|
| http://codeigniter.com/user_guide/general/routing.html
|
| ————————————————————————-
| RESERVED ROUTES
| ————————————————————————-
|
| There are two reserved routes:
|
| $route['default_controller'] = ‘welcome’;
|
| This route indicates which controller class should be loaded if the
| URI contains no data. In the above example, the “welcome” class
| would be loaded.
|
| $route['scaffolding_trigger'] = ‘scaffolding’;
|
| This route lets you set a “secret” word that will trigger the
| scaffolding feature for added security. Note: Scaffolding must be
| enabled in the controller in which you intend to use it. The reserved
| routes must come before any wildcard or regular expression routes.
|
*/
$route['default_controller'] = “home”;
$route['scaffolding_trigger'] = “”;
// Customized routing rules
$route['childmenu/([0-9]+)/([0-9]+)/([0-9]+)’] = “home/chidc/mid/$1/sid/$2/chid/$3″;
/* End of file routes.php */
/* Location: ./system/application/config/routes.php */
?>
Below we will go to the finished step for view -
// view.php
<a href=”<?=base_url()?>childmenu/<?=$id1?>/<?=$id2?>/<?=$id3?>”>Menu name</a>
[ It may help you
]
Tags: CodeIgniter, codeigniter uri routing rules, how to control query strings by uri rerouting, pass query strings by uri routing, rearrange url, routing rules, uri, uri rerouting, url, url rewrite, url segments reducing
April 11, 2009 at 1:43 am
if we make a site with some divs for 1024 * 768 resolution then if any one browse this site in 800*600 resolution then i think some problem will arise.
and those divs are control by css. then how can we recover it ?