1

我已经建立了一个网页,在它的产品页面中,它的 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/ ??

谢谢

4

2 回答 2

2

如果您不想在 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

于 2013-04-13T19:27:14.470 回答
1

如果您隐藏 id,您将无法再从 url 中检索它

如果您想隐藏它,只需执行以下操作:

$route['products/show/(:any)'] = "products/show/$1/$2";
于 2013-04-13T12:31:31.063 回答