【问题标题】:Codeigniter object not found 404 EasyPHP找不到 Codeigniter 对象 404 EasyPHP
【发布时间】:2015-10-16 09:10:16
【问题描述】:

我在使用 codeigniter 进行页面链接时遇到了问题,当从我的主屏幕导航到另一个名为 Live 的屏幕时,我收到以下错误:

找不到对象!

在此服务器上找不到请求的 URL。上的链接 引用页面似乎是错误的或过时的。请告知作者 关于错误的那个页面。

如果您认为这是服务器错误,请联系网站管理员。

错误 404

127.0.0.1 Apache/2.4.7 (Win32) PHP/5.4.24

主屏幕链接:http://127.0.0.1/projects/公司名称/index.php/home

我尝试访问的屏幕链接:http://127.0.0.1/projects/companyname/home/v_Live

home.php 控制器(底部):

class Home extends CI_Controller

{

public function __construct()

{

parent::__construct();

$this->load->helper('url');
$this->load->model('m_login');

}

public function index()

{

if($this->session->userdata('isLogin') == FALSE)

{

redirect('login/login_form');

}else

{

$this->load->model('m_login');
$user = $this->session->userdata('username');
$data['level'] = $this->session->userdata('level');
$data['user'] = $this->m_login->userData($user);
$this->load->view('home', $data);

}

--> function index () 

{ 


 function home (){
    $this->load->view("home");
    $this->load->view("v_Live");   
}

 function Live (){
    $this->load->view("home");
    $this->load->view("v_Live");    <----  
}    

}

}

}
?>

主页视图:

<nav>
    <ul>
        <li><a href="home.php">Home</a></li>
        <li>
            <a href="Cloud_Clients.html">Cloud Clients<span class="caret"></span></a>
            <div>
                <ul>
                    <li><a href="<?php echo base_url(); ?>home/v_Live">Live</a></li>
                    <li><a href="PreProduction.html">Pre-Production</a></li>
                    <li><a href="Clients.html">Client Versions</a></li>
                </ul>
            </div>
        </li>
        <li><a href="about.html">About</a></li>
        <li><a href="help.html">Help</a></li>
    </ul>
</nav>

v_实时屏幕视图:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Live</title>
</head>

<body>

<nav>
    <ul>
        <li><a href="home.php">Home</a></li>
        <li>
            <a href="Cloud_Clients.html">Cloud Clients<span class="caret"></span></a>
            <div>
                <ul>
                    <li><a href="<?php echo base_url(); ?>>home/v_Live">Live</a></li>
                    <li><a href="PreProduction.html">Pre-Production</a></li>
                    <li><a href="Clients.html">Client Versions</a></li>
                </ul>
            </div>
        </li>
        <li><a href="about.html">About</a></li>
        <li><a href="help.html">Help</a></li>
    </ul>
</nav>    

<table>
    <tr>
        <th>ID</th>
        <th>Client Name</th>
        <th>App Server</th>
        <th>Instance Name</th>
    </tr>
    <?php
        foreach($records as $row):
    ?>
    <tr>
        <td><?=$row->id?></td>
        <td><?=$row->Client Name?></td>
        <td><?=$row->App Server?></td>
        <td><?=$row->Instance Name?></td>
    </tr>
    <?php
        endforeach;
    ?>
    </table>
</body>

</html>

配置文件:

$config['base_url'] = 'http://127.0.0.1/projects/**companyname**/';

/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = 'index.php';

希望这些信息足以提供帮助。

谢谢

【问题讨论】:

  • 第二个网址中的index.php 在哪里??
  • 它没有出现很奇怪,我认为这可能是问题的一部分,但不知道为什么它不存在。
  • 检查答案。添加.htaccess 文件。会解决的。
  • 如果你的控制器文件名 Home.php 的第一个字母大写如果不是应该使用 codeigniter 3 这里有一些更多的 htaccess 用于 codeigniter github.com/riwakawebsitedesigns/htaccess_for_codeigniter

标签: php apache codeigniter pagination easyphp


【解决方案1】:

如果您的 codeigniter 版本是 3,那么文件名应该以大写字母开头。

接下来,你添加.htaccess文件了吗??如果不使用 index.php 访问 url。 或使用以下代码从 url 中删除 index.php。

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

在根目录中添加此文件,名称为 .htaccess。这将帮助您删除 url 中的 index.php

并删除$config 中的index.php 并制作$config['index_page'] = "";

同时删除base_url()。 Codeigniter 足够勇敢地识别它。

【讨论】:

  • 感谢您的帮助,我上次使用 codeigniter 是版本 3,这可能是问题。
  • 只需检查所有点,在您的代码中更新它们。我会好好工作的。
  • 我删除了 index.php 并使用您提供的代码升级了 .htaccess 文件,但仍然收到 object not found 错误。我还检查了文件名并将它们升级到 3.0。
  • 你更改文件名了吗?第一个字母应该是大写。在控制器和模型中
  • 你删除了我在config.php 文件中告诉的内容吗??
猜你喜欢
  • 1970-01-01
  • 2015-07-19
  • 2017-02-17
  • 2020-07-14
  • 2019-12-02
  • 2015-12-19
  • 1970-01-01
  • 2018-06-06
相关资源
最近更新 更多