我已经建立了一个网页,在它的产品页面中,它的 url 有这个原型
http://www.example.com/products/show/some-really-nice-product/512
url 的最后一位是产品 id,它的唯一目的是在数据库中搜索产品。
但是,是否有可能使用路由来隐藏该部分并且仍然可以通过其 id 搜索产品?
像 http://www.example.com/products/show/some-really-nice-product/ ??
谢谢
我已经建立了一个网页,在它的产品页面中,它的 url 有这个原型
http://www.example.com/products/show/some-really-nice-product/512
url 的最后一位是产品 id,它的唯一目的是在数据库中搜索产品。
但是,是否有可能使用路由来隐藏该部分并且仍然可以通过其 id 搜索产品?
像 http://www.example.com/products/show/some-really-nice-product/ ??
谢谢
如果您不想在 URL 中输入数字,则以后不能按数字/ID 搜索 :)
因此,您可以在表中添加一个 VARCHAR 字段,例如“urlized”,并使用“some-really-nice-product”作为给定 ID 的内容(您需要“urlize”所有产品名称并制作它们独特的)。不要忘记索引您的新字段...
然后,您可以使用这个对 SEO 非常友好的 URL 访问产品页面(以“.html”结尾):
http://www.example.com/products/show/some-really-nice-product.html
...通过添加到 CodeIgniter 的路由,就像这样:
$route['^products/show/(.*).html'] = 'products/show/$1';
在您的控制器/模型中,在数据库中搜索传递给“show”方法的字符串,而不是 ID
如果您隐藏 id,您将无法再从 url 中检索它
如果您想隐藏它,只需执行以下操作:
$route['products/show/(:any)'] = "products/show/$1/$2";