我是codeigniter的新手。目前我正在尝试创建一个博客。我使用.htaccess文件从url中删除index.php。然而,这没有问题。
我的网址路由对于帖子控制器工作正常。但它不适用于新的管理员控制器。
这是路线文件:
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
// My routes
$route['category'] = 'posts/category';
$route['(:any)'] = 'posts/index/$1';
$route['(:any)/(:any)'] = 'posts/view/$1/$2';
$route['admin'] = 'admin';
这是Admin控制器:
class Admin extends CI_Controller {
public function index()
{
$this->load->view('admin/index');
}
}
这是索引文件:
<?php echo "hello"; ?>
当我试图访问http://localhost/admin
时,我收到404错误。但所有其他路由工作正常,没有任何错误。
行动
我已经尝试将default_controller更改为admin控制器,然后它正常工作。我在http://localhost
上获得了所需的输出。
$route['default_controller'] = 'admin';
那么我在这里失踪了什么?
由于订单或路由,您正面临问题。在CodeIgniter命令或给定的路由很重要。让我们来看看你的路线,在category
路线之后你写了这条路线,
$route['(:any)'] = 'posts/index/$1';
这条路线只是意味着捕获除默认路线或category
路线以外的任何路线,因此无论您想要去哪个URL,它都会将您重定向到上述路线。要解决此问题,请更改此路由的顺序,
$route['admin'] = 'admin';
$route['category'] = 'posts/category';
$route['(:any)'] = 'posts/index/$1';
$route['(:any)/(:any)'] = 'posts/view/$1/$2';