【问题标题】:Query string in URLURL 中的查询字符串
【发布时间】:2013-08-18 06:04:11
【问题描述】:

所以我接手了一个我的朋友已经开始但没有时间完成的项目。这是一个使用 CodeIgniter 构建的在线电子商务系统。问题是,每个产品的 url 都设置为site.com/store/viewProduct?id=3,以 ID 作为标识符。现在我可以将 ID 保留在 URL 中,但我想这样做,以便删除 ? 并同时添加产品标题。所以最终的 URL 会像 site.com/store/viewProduct/3/cake-cutter 或类似的东西。

控制器功能也都引用了$_GET['id'];。我知道我也必须改变它……但是改成什么?

我尝试将 URL 更改为如上所示,然后使用 $this->uri->segment(1,0); 获取产品 ID,但出现错误。

我将使用 CodeIgniters 内置的 url_title(); 函数来生成产品名称,但是更改这些 url 的最简单方法是什么?

【问题讨论】:

  • 您想动态更改它们吗?像重定向?
  • 我想我在问什么是用最少的努力做到这一点的最佳方法。如果不经历并基本上重写整个购物车类,我真的不知道如何做到这一点

标签: .htaccess codeigniter mod-rewrite friendly-url


【解决方案1】:

最好的办法就是改变控制器获取您的 ID 的方式。我假设您不需要第 4 个 URI 段,这只是出于 SEO/可用性目的......但即使您这样做,您仍然可以通过设置此功能的方式获得它。

class Store extends CI_Controller {

    //site.com/store/viewProduct/3/cake-cutter
    public function viewProduct($id, $name)
    {
        //do stuff and now you have access to $id and $name
        //$id == 3
        //$name == 'cake-cutter'
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2013-11-21
    • 2014-05-30
    • 2012-03-27
    • 2011-08-30
    相关资源
    最近更新 更多