我对Codeigniter并不陌生,但到目前为止我一直致力于开始的项目。现在我自己开始一个新的小项目,我有点迷失。
我下载了codeigniter,配置了wamp中的所有参数,因此我有这个基本网址:http://local.project
现在我正在尝试建立一个小管理员。我应该能够通过显示登录页面的http://local.project/admin进入此管理员。我已经有了这个模板。
事情是出现相同的404错误。我的配置是:
在配置文件夹里面,routes.php:
$route['default_controller'] = "admin";
$route['404_override'] = '';
$route['admin'] = 'admin';
然后在controllers文件夹上,创建另一个文件夹admin,其文件名为admin.php,其中包含:
<?php
class Admin extends CI_Controller {
public function index()
{
echo 'Hello World!';
}
}
?>
现在,尝试从浏览器访问我尝试了很多可能的网址,但我仍然不确定它应该是什么&gt;
和其他组合如
http://local.project/admin/index.php http://local.project/index http://local.project/index/admin
但始终显示错误404页面未找到。
所以我真的很想知道,我做错了什么?
修改
这就是.htaccess包含&gt;
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
答案 0 :(得分:0)
你完全有理由认为通过定义默认控制器它应该在子文件夹中工作,但是ellislabs不同意。根据{{3}}:
$ route ['default_controller'] ='welcome';
此路由指示应该加载哪个控制器类 URI不包含数据,人们加载时就是这种情况 根URL。在上面的示例中,将加载“welcome”类。 我们鼓励您始终拥有默认路线,否则为404页面 将默认显示。
关键词是“如果URI不包含数据”。 “/ admin”包含数据。如果您将Admin控制器放在根控制器文件夹中并放入“local.project /”,您将获得Admin控制器的索引功能,但在子文件夹中,您必须指定完整路径,在这种情况下,是“/ admin / admin / index。”把它放到你的“管理”路线将解决问题,然后添加另一个路由来处理任何其他功能($route["admin/(:any)'] = 'admin/admin/$1'
应该做的伎俩)将修复其余的。
而且你知道,如果你把这个代码上传到运行Linux的服务器上,它就会破解,因为就“Linux / Unix”而言,“Admin”和“admin”是两个不同的控制器。作为一个长期的Windows开发者,我觉得你很痛苦。