Welcome Guest, Not a member yet? Register   Sign In
How can I hide content id on URL

(12-05-2016, 12:11 PM)PaulD Wrote: Hi,

This is quite straight forward to do.

1. In a table for products you would have product_id, product_url, plus all your other columns like name, price, description etc.
2. The product_url is a unique column and can be auto generated based on, say, the required product_name, or your user or admin can add a custom one from your 'add product screen'.
3. When you generate a url like your example, you do not send the 'id', you send the 'product_url' and look up your product from that.

PHP Code:
public function view_product($product_url)
   // do your query on the product_url

To generate the url you would do

<a href="<?php echo site_url('products/view_product/'.$item['product_url']); ?>">ProductName</a>

The url will then be something like:


So now, the product ID's are only for internal use, any reference to them in url's or your HTML is by url name, not their id. (By internal use, I mean once you have the product, you would still gather other related tables via the id, such as related products, special offers, related articles, reviews etc).

Hope that helps.


Really I do not understand what you mean with this. I give my codes, maybe you will help me with my codes ?

(This post was last modified: 12-06-2016, 11:22 AM by PaulD.)


1. You currently generate a url using a field called ID. Instead generate a url with a field called 'page_url'.
2. You currently do a database query with a search on ID. Instead do a database query with a search on 'page_url'.

Clearly, you need a database column in which the 'page_url' is stored beside your current ID.

That is it.

I can run through your code and replace 'id' with 'page_url' but do you really need me to do that? Also, the column in which your page name is kept might be called 'page_slug', or 'page_code', or 'page_url_name'.

I hope this helps,


Theme © iAndrew 2016 - Forum software by © MyBB