不能使管理着陆页工作


Can't make admin landing page work

我对Codeigniter并不陌生,但到目前为止一直在做一些开始的项目。现在我自己开始一个新的小项目,我有点迷路了。

我下载了codeigniter,在wamp中配置了所有参数,所以我有了这个基础URL: http://local.project

现在我正在尝试建立一个小管理员。我应该能够通过http://local.project/admin进入这个管理员应该显示一个登录页面。我已经有一个模板了。

事情是同样的404错误出现。我的配置是这样的:

在配置文件夹中,routes.php:

$route['default_controller'] = "admin";
$route['404_override'] = '';
$route['admin'] = 'admin';

然后在controllers文件夹中,创建了另一个名为admin.php的文件夹admin,其中包含:

<?php
  class Admin extends CI_Controller {
    public function index()
    {
    echo 'Hello World!';
    }
    }
?>

现在,试图从浏览器访问我已经尝试了许多可能的url,但我仍然不确定它应该如何>

http://local.project/admin

和其他组合,如

http://local.project/admin/index.phphttp://local.project/indexhttp://local.project/index/admin

但总是出现404页面未找到错误。

所以我真的很想知道,我做错了什么?

编辑

这是。htaccess包含的内容>

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

您完全有理由认为,通过定义默认控制器,它应该在子文件夹中工作,但ellislabs不同意。根据用户指南:

$route['default_controller'] = 'welcome';

这条路由指示,如果URI中不包含任何数据,当人们加载您的根URL。在上面的例子中,"welcome"类将被加载。建议您始终使用默认路由,否则会出现404页面默认显示

如果URI不包含数据,则关键字为"/admin"包含数据。如果你把你的Admin控制器放到根控制器文件夹中然后输入"local.project/"你会得到Admin控制器的索引函数,但在子文件夹中,你必须指定完整路径,在本例中是"/Admin/Admin/index."把它放到你的"管理"中路由将解决这个问题,然后添加另一个路由来处理任何其他功能($route["admin/(:any)'] = 'admin/admin/$1'应该做的技巧)将解决其余的问题。

就像你知道的,如果你把这段代码上传到运行Linux的服务器上,它会崩溃,因为"Admin"answers";admin"就Linux/Unix而言,是两种不同的控制器。作为一个长期的Windows开发者,我能感受到你的痛苦。