Php 单控制器错误代码点火器404

Php 单控制器错误代码点火器404,php,.htaccess,codeigniter,controller,Php,.htaccess,Codeigniter,Controller,我是CodeIgniter的新手,根据标题,我很难为我的应用程序设置一个控制器。这是一个非常简单的静态站点,有两个页面,比如“主页”、“关于”等等 我的routes.php文件中有这个: $route['default_controller'] = "mycontroller"; $route['404_override'] = ''; $route['(:any)'] = "mycontroller/$1"; // Home public function index() { $da

我是CodeIgniter的新手,根据标题,我很难为我的应用程序设置一个控制器。这是一个非常简单的静态站点,有两个页面,比如“主页”、“关于”等等

我的
routes.php文件中有这个:

$route['default_controller'] = "mycontroller";
$route['404_override'] = '';
$route['(:any)'] = "mycontroller/$1";
// Home
public function index()
{
    $data['page'] = 'home';
    $this->load->view('template',$data);
}

// about
public function about()
{
    $data['page']  = 'about';
    $data['title'] = 'About Us';
    $this->load->view('template',$data);
}
mycontroller.php
文件中:

$route['default_controller'] = "mycontroller";
$route['404_override'] = '';
$route['(:any)'] = "mycontroller/$1";
// Home
public function index()
{
    $data['page'] = 'home';
    $this->load->view('template',$data);
}

// about
public function about()
{
    $data['page']  = 'about';
    $data['title'] = 'About Us';
    $this->load->view('template',$data);
}
我在本地主机环境中工作,CI项目位于以下文件夹中:

http://localhost/local/project/ci-tbs/
我还在
config.php
文件中为
base\u url
参数指定了它

现在我希望浏览器指向的是什么

http://localhost/local/project/ci-tbs/about
是为了找到“关于我们”的页面,而我得到了一个404错误。正确地指向基址会显示“主页”

我做错了什么

是否检测到使用每页1的单个控制器istead?我完全可以用一种快速的方式来解决这个问题,但我还是很困惑,因为我不明白我做错了什么,为什么它不起作用。我想在一个控制器中简单地设置所有内容,每页一个方法

我已经在SO中看到过这个主题,比如在route
$route['(.*)]=“mycontroller/$1”中使用正则表达式,但在我的案例中,没有什么真正起作用,我认为这是非常基本的(非常基本,我确信我的错误非常严重,这将是非常尴尬的:P)

其他信息:

我在文件夹中有一个.htaccess文件,它是从Html5样板文件中按原样选取的,尝试了使用和不使用它,但404始终存在。我使用XAMPP作为本地环境


回答 正如@Vincent Decaux在回答中提到的,解决这个问题的方法是在url中添加index.php,另一个有趣的部分是

创建.htaccess文件以“隐藏”index.php

通过这种方式,我解决了另一个小问题,即资产文件中缺少查找结果的页面,因此我在.htaccess文件中使用了以下规则,将所有请求重定向到index.php文件,并排除资产文件夹和图像中的文件,以及此处建议的robots.txt


希望这能帮助我遇到同样问题的人

正如我在评论中提到的,它似乎是通过以下方式工作的:

localhost/local/project/ci-tbs/index.php/about 

创建.htaccess文件以“隐藏”index.php。

正如我在评论中提到的,它似乎可以通过以下方式工作:

localhost/local/project/ci-tbs/index.php/about 

创建您的.htaccess文件以“隐藏”index.php。

您使用的是apache的404还是ci的404?但他没有htaccess命令将请求重定向到index.php。。因此,一定是apache试图访问某个不存在的文件/dir。您能尝试以下链接吗:?它应该是CI 404,但在h5bp的.htacces中有一个404规则,
ErrorDocument 404/404.html
,我在文件夹中有一个404.html文件。@VincentDecaux成功了!奇怪的是,根据CI网站上的文档,它没有指定包含index.php,也没有提到在index.php的.htaccess中包含规则。你有apache的404或CI的404吗?但他没有htaccess命令将请求重定向到index.php。。因此,一定是apache试图访问某个不存在的文件/dir。您能尝试以下链接吗:?它应该是CI 404,但在h5bp的.htacces中有一个404规则,
ErrorDocument 404/404.html
,我在文件夹中有一个404.html文件。@VincentDecaux成功了!奇怪的是,根据CI站点上的文档,没有指定包含index.php,也没有提到在index.php IRC的.htaccess中包含规则