在Codeigniter URL route.php中出现问题

时间:2018-12-30 20:28:30

标签: php codeigniter routes

我正在一个项目中,我需要为每个产品创建干净的URL,请参见以下模式:-

  

example.com/Single_Product_Page

原始URL为 example.com/browse/Single_Product_Page ,我使用了以下代码:-

$route['(:any)'] = 'Products/browse/$1'; 
  

我有两页(1)example.com/Product
  和(2)example.com/Products/Single_Product_Page   

  
    

它运行正常,但是现在我无法打开产品页,当我尝试打开它时,它会打开 Single_Product_Page

  

请帮助我解决此问题。

2 个答案:

答案 0 :(得分:1)

您需要更新与该示例类似的路由(在我的网站上可以正常运行):

$route['products'] = 'controller/myfunction/argument';
$route['products/:any'] = 'controller/myfunction/another_argument/$1/1';

您可以从文档here

中获得更多见识

答案 1 :(得分:0)

您可以使用一些技巧来仅使用您的控制器名称(当然这是必须的),但无需编写方法名称并在控制器名称之后直接传递参数,因此基本上您的url看起来像这样: http://localhost/controller/parameter,这样可以缩短您的网址,但不能达到您声称的SEO友好性。

您可以在控制器中使用_remap并检查它是否与正常处理的方法匹配或将其传递给索引(这是默认方法,无需在url中编写)。现在您无需按预期在网址中使用索引。

public function _remap($method)
{
    if ($method === 'some_method_in_your_controller')
    {
            $this->$method();
    }
    else
    {
            $this->index($method);
    }
}

或者您可以依靠ajax来完成所有的操作,并且您的URL一直都是固定的。