使用路由器设置codeigniter uri(URL)

时间:2013-06-18 15:06:25

标签: codeigniter codeigniter-url

我有codeigniter项目。我使用router.php显示产品页面以进行网址更改。我在这里面临一些问题。路由器代码在这里

Url                                 router.php code   
www.sitename.com/products/page/2 -> $route['products/page/(:num)'] = "products";
www.sitename.com/products/product-name -> $route['products/(:any)'] = "products/detail/$1";
www.sitename.com/products/product-categories -> $route['products/(:any)/(:num)'] = "products/selbygrp/$2";

以上代码适用于特定产品详细信息视图。但从逻辑上讲,我有问题

问题:  如果我去分页链接路由器转到第二个路由代码。如果选择特定产品组类别列表,它将转到第二个路径代码。我给它的东西将转到第二条路线。

我知道原因。如果产品/之后它将采取第二条路线。但我不需要这样。以下我想要的网址

www.sitename.com/products/productname -> for product detailview
www.sitename.com/products/product-categories -> list product categories wise 
www.sitename.com/products/page/number -> show product list with pagenation 

我坚持这个,如果有任何可能的htaccess为此,给我指导谢谢提前

3 个答案:

答案 0 :(得分:1)

要解决问题,请移动

$route['products/(:any)/(:num)'] = "products/selbygrp/$2";

以上

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

答案 1 :(得分:0)

如果我理解正确,您的链接会在分页的第二页之后中断。当它在网址中粘贴这个/ 2或任何其他数字时。

这是我必须解决的问题,我昨晚做了同样的事情。

在我的分页基本网址中,我将其切换为新网址

$config["base_url"] = base_url()."/products;

然后在我的路线中我添加了另一条路线以适应分页。

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

答案 2 :(得分:0)

谢谢你们所有人给了我一个很好的答案。最后我找到了答案。答案就在这里 当网址转到产品类别时,我为它创建了一个控制器,然后我进行了路由 像这样

url -> www.sitename.com/productgroup/groupname

route -> $route['productgroup/(:any)'] = "productgroup/selgrp/$1";

当我点击产品类别时,上述路线会重定向到产品组控制器。所以分页问题也解决了。

再次,我要感谢每一个给我很好的答案。