我已经建立了一个网页,在其产品页面中为其网址设置了这个原型
http://www.example.com/products/show/some-really-nice-product/512
网址的最后一位是产品ID,其唯一目的是在数据库中搜索产品。
但是,使用路由能够隐藏该部分并且仍然可以通过其ID搜索产品吗?
像 http://www.example.com/products/show/some-really-nice-product/ ??
谢谢
答案 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";