.htaccess URL中的查询字符串

.htaccess URL中的查询字符串,.htaccess,codeigniter,mod-rewrite,friendly-url,.htaccess,Codeigniter,Mod Rewrite,Friendly Url,所以我接管了一个项目,我的一个朋友已经开始,但没有时间完成。这是一个使用CodeIgniter构建的在线电子商务系统。问题是,每个产品的url都像site.com/store/viewProduct?id=3那样设置,id作为标识符。现在我可以将ID保留在URL中,但我希望这样做,即删除?,同时添加产品标题。所以最终的URL应该是site.com/store/viewProduct/3/cake cutter或者类似的东西 控制器的所有功能都参考$\u GET['id']也是。我知道我也必须改变

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

控制器的所有功能都参考
$\u GET['id']也是。我知道我也必须改变这一点。。。但是为了什么

我尝试将URL更改为如上所示,然后使用
$this->uri->segment(1,0)
获取产品id,但我遇到了一个错误


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

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

类存储扩展CI\U控制器{
//site.com/store/viewProduct/3/cake-cutter
公共函数viewProduct($id,$name)
{
//现在,您可以访问$id和$name了
//$id==3
//$name==“切蛋糕机”
}
}

是否要动态更改它们?像重定向?我想我是在问,用最少的努力做这件事的最好方法是什么。我真的不知道如何在不经过并基本上重写整个购物车类的情况下做到这一点