【问题标题】:Codeigniter Route IDCodeigniter 路由 ID
【发布时间】:2013-04-13 12:08:04
【问题描述】:

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

谢谢

【问题讨论】:

    标签: php codeigniter routing


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-29
        • 2010-11-20
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多