Codeigniter:路由和URI段

Codeigniter:路由和URI段,codeigniter,Codeigniter,我在codeigniter中遇到路由问题 假设我有一个名为Pages的控制器,其中一个名为product的方法执行以下操作: public function product() { $this->load->model('pages_model'); $productid = $this->uri->segment(3); $data['product'] = $this->pages_model->getProduct($produ

我在codeigniter中遇到路由问题

假设我有一个名为Pages的控制器,其中一个名为product的方法执行以下操作:

public function product() {
    $this->load->model('pages_model');
    $productid = $this->uri->segment(3);

    $data['product'] = $this->pages_model->getProduct($productid);
    // ...load view, etc.
}
要访问特定产品,我的url将是www.example.com/pages/product/ID

我想设置一个自定义路径,以便通过访问www.example.com/name-of-product访问产品

但是,

$route['name-of-product'] = 'pages/product/ID'; 
不起作用。它将加载产品视图,但不会加载产品数据。如果我说

$route['name-of-product/:any/ID'] = 'pages/product/ID';

它可以正常工作,但我不希望在url的末尾有另外两个段

您不需要另外两段。一个就足够了

$route['PRODUCT_NAME/PRODUCT_ID'] = 'pages/product/PRODUCT_ID';
但是,如果我是你,我会让URL中的第一个段成为产品的id

$route['PRODUCT_ID/PRODUCT_NAME'] = 'pages/product/PRODUCT_ID';
这样,如果我只知道产品id,就不必键入
example.com//123
,这可能会导致一些问题。如果我没有弄错,如果您这样做,CI将尝试加载名为
123
的控制器