我刚刚开始使用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
。