Removing index.php from Codeigniter URL

If you are using Codeigniter you are noticed that by default index.php will be included with your URL.

But you can easily remove index.php from your CodeIgniter’s URL so that your URL should be like:

http://domain.com/about

To do this just follows the following steps:

Open config.php from system/application/config directory and replace

$config['index_page'] = “index.php” by $config['index_page'] = “”

Create a “.htaccess”file in the root of CodeIgniter directory (where the system directory resides), open the file using your favorite text editor, write down the following script and save it:

RewriteEngine on
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

In some case the default setting for uri_protocol does not work properly. To solve this problem just replace
$config['uri_protocol'] = “AUTO” by $config['uri_protocol'] = “REQUEST_URI” from system/application/config/config.php

use of $this->uri->segment(3) in codeigniter pagination


This provides you to retrieve information from your URI strings
$this->uri->segment(n); // n=1 for controller, n=2 for method, etc
it will return
$this->uri->segment(1); // controller
$this->uri->segment(2); // action
$this->uri->segment(3); // 1stsegment
$this->uri->segment(4); // 2ndsegment

pagination in codeigniter

view Code

 <?php
$i=1+$this->uri->segment(3);
if(is_array($displaydata))
{
foreach($displaydata as $db) {
?>

custom fileds...

 <?php $i++;  } } ?>

<?php if(empty($displaydata)) { ?>
            <tr>
            <td colspan="7" bgcolor="#F8F8F8">No Records Found .. .... ...</td>
            </tr>
            <?php }  ?>      
</table>  <?php echo $this->pagination->create_links();?></td>



controller code

public function certificatedata()
{
$displaydata = $this->mreminder->listcertificatedata('','') ;

$total_rows = count($displaydata) ;
$config['base_url'] =  base_url().'index.php/welcome/certificatedata/' ;
$config['per_page'] = 10 ;
$config['full_tag_open'] = '<div>' ;
$config['full_tag_close'] = '</div>' ;
$config['first_link'] = 'First' ;
$config['last_link'] = 'Last' ;
$config['use_page_numbers'] = FALSE ;
$config['prev_link'] = '&lt;';
$config['uri_segment'] = 3 ;
$config['num_links'] = 7 ;
$config['cur_tag_open'] = '<b>' ;
$config['cur_tag_close'] = '</b>' ;
$config['total_rows'] = $total_rows ;

$displaydata = $this->mreminder->listcertificatedata($config['per_page'], $this->uri->segment(3)) ;

$this->pagination->initialize($config);

$data = array(  
'displaydata' => $displaydata    
) ;

$this->load->view('certificatedata',$data);
}


Model COde

function listbillingdata($num, $offset)
{

if($offset!="")
{    
     $que = "select * from billingtbl where deleted=0  LIMIT ".$offset.", ".$num."";
}
else if($num!="")
{
  $que = "select * from billingtbl where deleted=0 LIMIT ".$num."" ;
}
else
   {
$que = "select * from billingtbl where deleted=0" ;
}


$query = $this->db->query($que) ;  
$results = $query->result_array() ;
return $results  ;
}