Codeigniter路线ID

时间:2013-04-13 12:08:04

标签: php codeigniter routing

我已经建立了一个网页,在其产品页面中为其网址设置了这个原型

http://www.example.com/products/show/some-really-nice-product/512

网址的最后一位是产品ID,其唯一目的是在数据库中搜索产品。

但是,使用路由能够隐藏该部分并且仍然可以通过其ID搜索产品吗?

http://www.example.com/products/show/some-really-nice-product/ ??

谢谢

2 个答案:

答案 0 :(得分:2)

如果您不想在网址中添加数字,则以后不能使用数字/ ID进行搜索:)

因此,您可以向表中添加VARCHAR字段,例如“urlized”,并使用“some-really-nice-product”作为给定ID的内容(您需要'urlize'所有产品名称并使它们独一无二)。不要忘记索引你的新领域......

然后,您可以使用此URL非常友好地访问产品页面(以“.html”结尾):

http://www.example.com/products/show/some-really-nice-product.html

...通过添加一个到CodeIgniter的路由,不知何故这样:

$route['^products/show/(.*).html'] = 'products/show/$1';

在您的控制器/模型中,在数据库中搜索传递给“show”方法的字符串,而不是ID

答案 1 :(得分:1)

如果您隐藏ID,则无法再从该网址中检索

如果你想隐藏它,只需这样做:

$route['products/show/(:any)'] = "products/show/$1/$2";