我刚刚开始使用codeigniter,在我的小项目的管理控制面板中工作。找不到404页面当我尝试编辑或删除时出错。
在routes.php $route['admin/clients/update/(:any)'] = 'admin_clients/update/$1';
中,它给我404错误。
如果我访问$route['admin/clients/update'] = 'admin_clients/update';
,它的加载编辑表单。如果我在url中传递segement 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]
我没有得到确切的问题。请帮助我,回复将不胜感激
答案 0 :(得分:2)
您需要检查路线定义的顺序。
例如
$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
。