我在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中的大部分解决方案,之后我就问了这个问题。所以我的要求是不要将这个问题添加到复制中。我想解决我的问题。任何帮助都很明显
谢谢
答案 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)
您的问题可能是由于以下任何原因造成的
答案 6 :(得分:0)
发生这种情况的原因有很多。就我而言,原因是在控制器的命名中使用下划线,例如My_Custom_Controller
$route['translate_uri_dashes'] = FALSE;
$route['my-custom-path'] = 'my_Custom_Controller/landing';
因此,我能够通过将控制器重命名为Mycustomcontroller
来修复它,这是它唯一的工作时间。
$route['translate_uri_dashes'] = FALSE;
$route['my-custom-path'] = 'mycustomcontroller/landing';
命名没有遵循CodeIgniter的建议命名约定,但它确实为我解决了这个问题。