hello all,
this is my first question here hope u'll all understand my problem an help me..
So this is the problem i am working on an application based on sports community(CODEIGNITER) so when a logged-in user clicks on team name or sports page redirect's to specific team page and the url is like below
http://localhost/project/home?cat_id=MjY=&cat_type=Mg==
where cat_id and cat_type is in base64encode()
i want to make it seo friendly.. i already tried this link
How to Convert Query String to Segment URI? but nothing happend can any one help me plz
current url is localhost/project/home?cat_id=MjY=&cat_type=Mg==
desired url localhost/project/home/team-category
thanks in advance.....
Basically what are you looking for is slug based URLs (Semantic URLs)
Will explain with an example:
URL - http://www.example.com/products/apple-iphone-5S-16GB-brand-new/
1) Assuming you are having a product page and ofcourse product page needs some data from URL to understand which product to display.
2) Before we were querying our database using the id we are getting from the URL. But now we'll do the same thing (querying our database) just replacing id with slug and thats it!
3) Hence adding an additional column in your database named slug. Below will be your updated product database structure (just an example).
Columns Values
id (int(11), PK) 1
title (varchar(1000)) Apple iPhone 5S 16GB
slug (varchar(1000)) apple-iphone-5S-16GB-brand-new
price (varchar(15)) 48000
thumbnail (varchar(255)) apple-iphone-5S-16GB-brand-new.jpg
description (text) blah blah
...
...
For this you have to do below changes -
1) Create below 2 tables
slug_table:
id (PK) | slug | category_id (FK)
category_table:
id (PK) | title | thumbnail | description
2) config/routes.php
$route['/products/(:any)'] = "category/index/$1";
3) models/category_model.php
class Category_model extends CI_Model
{
public function __construct()
{
parent::__construct();
$this->db = $this->load->database('default',true);
}
public function get_slug($slug)
{
$query = $this->db->get_where('slug_table', array('slug' => $slug));
if($query->num_rows() > 0)
return $query->row();
return false;
}
public function get_category($id)
{
$query = $this->db->get_where('category_table', array('id' => $id));
if($query->num_rows() > 0)
return $query->row();
return false;
}
}
4) controllers/category.php
class Category extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('category_model');
}
public function index($slug)
{
$sl = $this->category_model->get_slug($slug);
if($sl)
{
$data['category'] = $this->category_model->get_category($sl->category_id);
$this->load->view('category_detail', $data);
}
else
{
// 404 Page Not Found
}
}
}
5) views/category_detail.php
<label>Category title: <?php echo $category->title; ?></label><br>
</label>Category description: <?php echo $category->description; ?></label>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With