【问题标题】:Codeigniter 404 error is shown显示 Codeigniter 404 错误
【发布时间】:2014-05-25 02:55:52
【问题描述】:

我正在关注来自 codeigniter 网站的教程静态页面。

  1. 我将 codeignitor zip 解压缩到我的本地服务器中。
  2. 修改了一行

    $config['base_url']='http://localhost/'; 
    

在应用程序/config/config.php中

  1. 创建文件:application/controllers/pages.php 具有以下内容:

    <?php
    
    class Pages extends CI_Controller {
    
    public function view($page = 'home')
    {
        if ( ! file_exists('/var/www/application/views/pages/'.$page.'.php'))
    {
        // Whoops, we don't have a page for that!
        show_404();
    }
    
    $data['title'] = ucfirst($page); // Capitalize the first letter
    
    $this->load->view('templates/header', $data);
    $this->load->view('pages/'.$page, $data);
    $this->load->view('templates/footer', $data);
    }
    }
    
  2. 创建了文件:application/views/templates/header.php 和一些 HTML 内容。

  3. 创建了文件:application/views/templates/footer.php 和一些 HTML 内容。

现在,当我去

  localhost/index.php/pages/view/about

我期待“关于”页面,但显示 404 错误。

这是为什么呢?

【问题讨论】:

  • 尝试使用此代码 file_exists('/var/www/application/views/pages/about.php')
  • 看看它是否有效
  • file_exists('/var/www/application/views/pages/about.php') 正在工作,谢谢。但不是 file_exists('/var/www/application/views/pages/'.$page.'.php')

标签: php codeigniter codeigniter-2


【解决方案1】:

我认为问题出在这里-

if ( ! file_exists('/var/www/application/views/pages/'.$page.'.php'))

您还应该提及您的 codeigniter 文件夹的名称!

【讨论】:

  • 什么是codeignitor文件夹?实际上,该路径不存在,所以我重写为 '/var/www/application/views/'.$page.'.php' 但新错误是“遇到错误无法加载请求的文件:pages/about .php"
【解决方案2】:

请尝试关注

if (file_exists(APPPATH."views/pages/". $page. ".php")) {

   $this->load->view("pages/". $page);

} 

APPPATH = 不言自明

【讨论】:

  • 问题仍然出在 file_exists(APPPATH."views/pages/".$page.".php" 或 file_exists('/var/www/application/views/pages/'.$page .'.php') 或 file_exists('application/views/pages'.$page.'.php') 我猜
  • 关于您的代码,没有显示输出。 (因为你没有使用 ! 在 file_exists 函数前面)。
  • 如果我使用 !在 file_exists 函数前面(在您的代码中),输出错误是 404 file not found.
  • 好吧,你的文件丢失了,大小写错误,请试试这个 if(true) {//simple if else concept} else {}...试试 var_dump() php 函数进行调试。 ..
  • 但我看到这个工作:file_exists('/var/www/application/views/pages/about.php'),但不是这个:file_exists('/var/www/application/views/ pages/'.$page.'.php')
【解决方案3】:

一些网络服务器需要一个问号,如下所示:

localhost/index.php?/pages/view/about


你能测试一下吗?

【讨论】:

    【解决方案4】:

    不是这个

    $config['base_url']='http://localhost/'; 
    

    试试

    $config['base_url']='http://localhost/project_name/'; 
    

    【讨论】:

    • 请停下来学习如何格式化您在答案中发布的代码。查看其他问题和答案应该向您表明,我们希望您学习如何正确格式化您的帖子。
    猜你喜欢
    • 1970-01-01
    • 2015-12-13
    • 2012-07-12
    • 2016-03-09
    • 2014-08-01
    • 2016-08-15
    • 2012-06-20
    • 2015-07-04
    • 1970-01-01
    相关资源
    最近更新 更多