我有一个页面有这个类别的URL website.com/category/view/honda-red-car我只是想让它说http://website.com/honda-red-car没有html或php并且摆脱了类别视图URL ..此网站已使用CodeIgniter框架完成..
此产品查看网址:http://www.product/details/13/honda-accord-red-car 我希望它成为website.com/honda-accord-red-car请帮助!!!
我无法找到关于我做错的正确指示?
答案 0 :(得分:2)
查看用户指南的URI Routing部分。
如果您想要路由具体的网址集,那么通过向application/config/routes.php
添加规则,您应该能够达到您想要的效果。
如果您想要一些通用解决方案(任何uri段可以是product/details
页面),那么您可能需要将所有其他URL明确添加到routes.php
配置文件并设置一个包罗万象的规则将一切都路由到正确的控制器/方法。记得处理404网址!
<强>示例:强>
让我们说/honda-red-car
是特别的,你只想在你写的内部重定向这个:
$routes['honda-red-car'] = 'product/details/13/honda-accord-red-car';
如果您想要概括以honda-
字符串开头的所有内容:
$routes['(honda-.*)'] = 'product/details_by_slug/$1'; // imaginary endpoint
这些规则在preg_replace()
调用内部使用,作为模式传入密钥,值作为替换字符串,因此()
用于捕获组,$1
用于放置捕获部分。
小心模式,如果它们过于笼统,它们可能会捕获每个请求,所以:
$routes['(.*)'] = 'product/details_by_slug/$1';
虽然它肯定适用于任何汽车名称,例如suzuki-swift-car
,但它也会捕获普通的根网址或product/details/42
请求。
这些规则从上到下进行了评估,因此请从顶部的特定规则开始,并在文件末尾留下一般规则。
答案 1 :(得分:2)
在Routes.php中你需要创建一个这样的
$route['mycar'] = "controller_name/function_name";
因此,对于您的示例,它将是:
$route['honda-red-car] = "category/view/honda-red-car";