Codeigniter 路线未按预期工作

Codeigniter routes not working as expected

我很困惑,因为这方面的文档非常简单明了,我一定是遗漏了什么。

我有一个控制器,我可以像这样使用 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';

我不确定我是否理解,但假设你的控制器是 usermanager,你必须指定组应该在哪里:

$route['/users/(:any)'] = '/usermanager/';

所以,如果一个请求是 /users/testing 就会像 /usermanager/testing

确保使用 Codeigniter 提供的 .htaccess 文件并将其放置到根应用程序中。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L]

另存为 .htaccess

路由的逻辑是。您将 Welcome.php 作为默认控制器。如果您要路由自定义控制器,请执行以下操作。

$route['default_controller'] = 'welcome' //where execute the Welcome/index

示例:

$route['login'] = 'Auth/login'

您只需调用登录到您的 url,它将动态执行 Auth/login

Codeigniter 大多数人使用这 3 种类型的路线

//简单路线

$route['login'] = 'Login/index';

//通过id或number的路由

$route['product/(:num)'] = 'catalog/product_lookup_by_id/';

// 通过任意路由

$route['product/(:any)'] = 'catalog/product_lookup';

// 在路由中传递 moulte 值

$route['product/(:any)/(:any)'] = 'catalog/product_lookup';

删除路由中的前导斜线。

改变这个

$route['/users/(:any)'] = '/usermanager';

至此

$route['users/(:any)'] = 'usermanager';