【问题标题】:codeigniter uri (URL) setup using router使用路由器的codeigniter uri(URL)设置
【发布时间】:2013-06-14 21:00:48
【问题描述】:

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

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";

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

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

我知道原因。如果 products/ 在任何事情之后,它将采取第二条路线。但我不需要这样。我想要的以下网址

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 做这件事,请给我指导,谢谢提前

【问题讨论】:

  • 您是否遇到了分页和路由器问题?如果是这样,查看您的分页代码会很有帮助
  • 与分页无关的问题。问题是在产品之后任何 url 传递到第二条路线的问题,否则分页工作正常

标签: codeigniter codeigniter-url


【解决方案1】:

要解决问题,只需移动

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

上面

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

【讨论】:

    【解决方案2】:

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

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

    在我的分页基础网址中,我将其切换到新网址

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

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

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

    【讨论】:

      【解决方案3】:

      感谢大家给了我一个很好的答案。最后我找到了答案。答案就在这里 当 url 转到产品类别时,我为它创建了一个控制器,然后我路由 像这样

      url -> www.sitename.com/productgroup/groupname
      
      route -> $route['productgroup/(:any)'] = "productgroup/selgrp/$1";
      

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

      再次感谢每一位给我很好的回答。

      【讨论】:

        猜你喜欢
        • 2013-11-11
        • 2014-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多