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

时间:2014-11-05 04:51:42

标签: php .htaccess codeigniter

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

我没有得到确切的问题。请帮助我,回复将不胜感激

1 个答案:

答案 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