$route[';admin/clients/update/(:any)';]在给我404页面的路由上找不到


$route['admin/clients/update/(:any)'] on routes giving me 404 page not found Error?

我刚刚开始使用codeigniter,在我的小项目的管理控制面板中工作。找不到Getting 404页面当我试图编辑或删除时出错。

在routes.php $route['admin/clients/update/(:any)'] = 'admin_clients/update/$1';中,它给了我404错误。

如果我访问$route['admin/clients/update'] = 'admin_clients/update';,它会加载编辑表单。如果我在url中传递第4段,它会给我404页未找到错误。

这是我的htaccess

 RewriteEngine on
RewriteBase /testing_palace/
RewriteCond $1 !^(index'.php|resources|robots'.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

我不知道确切的问题是什么。请帮助我,我们将感谢

的回复

您需要检查路由定义的顺序。

例如

$route['admin/(:any)'] = 'admin/$1';
$route['admin/clients/(:any)'] = 'admin/clients/$1';
$route['admin/clients/update/(:any)'] = 'admin_clients/update/$1';

将始终捕获第一条规则,而admin/clients/update/1将查找admin/clients/update/1,因此,它可能会给出404错误。

但是像这样:

$route['admin/clients/update/(:any)'] = 'admin_clients/update/$1';
$route['admin/clients/(:any)'] = 'admin/clients/$1';
$route['admin/(:any)'] = 'admin/$1';

每个规则都将被检查,直到一个有效的规则,所以admin/clients/update/1将重定向到admin_clients/update/1