我在我的网站上使用Codeigniter,我希望我的单个产品网址像thi
http://sitename.com/category-slug/product-slug
所以我在route.php
注册了一条路线$route['([a-zA-Z0-9-]+)'/'([a-zA-Z0-9-]+)'] = 'products/show';
但是,这条路线导致我这条路线的问题也被这样的每条路线使用,例如http://sitename.com/admin/dashboard
,我不想这样,所以我在路线中添加一个标识符,如{{1}现在我的单个产品页面正在使用此路由,并且与任何其他路由不冲突。现在的问题是如何从
http://sitename.com/myproducts/category-slug/product-slug
部分
myproducts
至http://sitename.com/myproducts/category-slug/product-slug
我知道可以使用http://sitename.com/category-slug/product-slug
,但不知道怎么做?
答案 0 :(得分:0)
如果你有像
这样的网址http://sitename.com/admin/dashboard
http://sitename.com/myproducts/category-slug/product-slug
您可以在路线文件中执行此操作
$route['admin/:any'] = 'admin/int_rout/$1';
$route['myproducts/:any/:any'] = 'products/show/$1/$2';
但是如果你想拥有相同的路线功能并做出每一个决定 与网址一样
http://sitename.com/admin/dashboard
http://sitename.com/category-slug/product-slug
$route['(.+)'] = function ( $param ) {
$pos = strpos($param, '/');
if( ! $param){
$return = 'simple/url';
}
else{
$return = explode('/', $param);
switch($return[0]){
case 'admin':
$return = 'admin/int_route';
break;
default:
$return = 'products/show/$return [0]/$return [1]';
break;
}
}
return $return;
}