我很困惑,因为有关此文档的文档非常简单明了,我必须缺少一些东西。
我有使用routes.php
路由到的控制器,
$route['users'] = '/usermanager';
这可以按预期工作,导航到mysite/users
会呈现我的控制器。
我有一些前端路由来处理用户页面上的不同选项卡,因此url可以具有一些子路由,例如/users/management
。逻辑全部在前端处理,我需要将/users
下的任何内容路由到同一控制器。
所以我这样写:
$route['/users/(:any)'] = '/usermanager';
这失败,我被定向到404页面。
我也尝试过明确指定路线:
$route['/users/management'] = '/usermanager';
仍然没有骰子。我对这个路由功能不了解什么。
这里有我完整的routes.php,以防我丢失了一些东西:
$route['default_controller'] = 'EdgeView';
$route['404_override'] = 'PageNotFound';
$route['translate_uri_dashes'] = FALSE;
$route['view'] = '/';
$route['list'] = '/';
$route['pictorial'] = '/';
$route['certificate'] = '/';
$route['files'] = '/';
$route['about'] = '/';
$route['contact'] = '/';
$route['users'] = '/usermanager';
$route['/users/(:any)'] = '/usermanager';
答案 0 :(得分:1)
删除路线中的前导斜线。
更改此
$route['/users/(:any)'] = '/usermanager';
对此
$route['users/(:any)'] = 'usermanager';
答案 1 :(得分:0)
我不确定是否理解,但是假设您的控制器是 <Link
className="link-apply"
to={{pathname: `/job/${job._id}`,
state: job
}}>
<p className="place">{job.workplace_name}</p>
<p className="location-job">{job.location}</p>
</Link>
,则必须指定组的位置:
usermanager
因此,如果请求为$route['/users/(:any)'] = '/usermanager/$1';
,则类似于/users/testing
答案 2 :(得分:0)
确保您使用Codeigniter提供的.htaccess文件,并将其放置到您的根应用中。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
另存为.htaccess
$route['default_controller'] = 'welcome' //where execute the Welcome/index
示例:
$route['login'] = 'Auth/login'
您只需将登录名调用为您的URL,它将动态执行 Auth / login 。
答案 3 :(得分:-1)
Codeigniter大多数Pepole使用了这3种路线
//简单路线
$route['login'] = 'Login/index';
//通过具有ID或编号的路由
$route['product/(:num)'] = 'catalog/product_lookup_by_id/$1';
//通过任何路线
$route['product/(:any)'] = 'catalog/product_lookup';
//在路径中传递摩尔值
$route['product/(:any)/(:any)'] = 'catalog/product_lookup';