[英]Getting issue in codeigniter URL routes.php
我正在一个项目中,我需要为每个产品创建干净的URL,请参见以下模式:-
example.com/Single_Product_Page
原始网址为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
请帮我解决这个问题。
您需要更新类似于以下示例的路由(在我的网站上可以正常运行):
$route['products'] = 'controller/myfunction/argument';
$route['products/:any'] = 'controller/myfunction/another_argument/$1/1';
您可以从此处的文档中获得更多见解
您可以使用一些技巧来仅使用您的控制器名称(当然这是必须的),但是无需编写方法名称并在控制器名称之后直接传递参数,因此基本上您的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几乎总是固定的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.