未找到Codeigniter控制器

时间:2016-05-09 11:34:35

标签: php codeigniter

我在codeigniter中创建了一个控制器。问题是当我在url中点击控制器名称和函数名称时,它会给我错误404找不到。我是codeigniter的新手,我不明白我哪里出错了

这是我的控制器

<?php
if(!defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller{

function __construct(){
parent::__construct();
}

function you(){
$this->load->view('home_view');
}

}
?>

我的观点是这样的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>My First CodeIgniter Practice</title>
 </head>
 <body>
 <h1> HELLO CI Buddy...!</h1>
 </body>
 </html>

我在codeigniter上创建了我的第一个项目,我遇到了这个问题。我已经尝试了stackoverflow中的大部分解决方案,之后我就问了这个问题。所以我的要求是不要将这个问题添加到复制中。我想解决我的问题。任何帮助都很明显

谢谢

7 个答案:

答案 0 :(得分:4)

我认为.htaccess文件可能存在问题。你的主项目目录中是否有.htaccess文件,如下所示?如果不这样做..

 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.+)$ index.php/$1 [L]

答案 1 :(得分:3)

在思考这个问题时,我想知道像我这样的初学者可能会发生这种情况 假设我们将项目放在名为 codeigniter 的文件夹中。因此,当键入url时,我们输入类似localhost/codeigniter/的内容并显示欢迎消息。但它会自动添加在config.php(第38行)中定义的 index.php localhost/codeigniter/index.php。所以,如果你没有用.htaccess文件写的mod_rewrite,请不要担心,试试这个网址

localhost/codeigniter/index.php/home/you

在您的情况下home.php是控制器文件,you是此处的方法

答案 2 :(得分:0)

请尝试使用以下

a)在控制器中创建成员函数index()并检查

b)哪个网址正在检查?

b.1)http://localhost/yourproject/index.php/home/you

(localhot:是您的服务器网址,您的项目:您的项目文件夹,主页=您的控制器文件,即Home.php和您:您的会员功能。

答案 3 :(得分:0)

尝试以下

<?php
if(!defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller{

   public function __construct(){
      parent::__construct();
    }

    public function index(){
      $this->load->view('home_view');
    }

}
?>

并确保您的home_view.php文件与application/views目录中的代码一起存在。现在,您可以运行URL http://localhost/w3crud/home/index来查看所需的输出

答案 4 :(得分:0)

您是否在实时服务器上运行项目?如果是,请确保控制器的文件名以大写字母开头。这似乎是一个愚蠢的答案,但请注意,我自己花了超过五个小时试图解决同样的问题。

答案 5 :(得分:0)

您的问题可能是由于以下任何原因造成的

  • 您的控制器文件名的第一个字母应为大写字母,即Home.php。
  • 请检查您的主页文件名
  • 使用URL localhost / w3crud / index.php / home / you 如果问题在您的网址中,请编辑您的.htaccess文件

答案 6 :(得分:0)

发生这种情况的原因有很多。就我而言,原因是在控制器的命名中使用下划线,例如My_Custom_Controller

routes.php(有问题)

$route['translate_uri_dashes'] = FALSE;

$route['my-custom-path'] = 'my_Custom_Controller/landing';

因此,我能够通过将控制器重命名为Mycustomcontroller来修复它,这是它唯一的工作时间。

routes.php(功能性)

$route['translate_uri_dashes'] = FALSE;

$route['my-custom-path'] = 'mycustomcontroller/landing';

命名没有遵循CodeIgniter的建议命名约定,但它确实为我解决了这个问题。