CodeIgniter初始设置404

时间:2017-10-16 09:41:45

标签: php codeigniter routing

我刚刚开始学习CodeIgniter并试图在这个结构中设置我的项目:

规范
Apache / 2.4.27(Win64)PHP / 5.6.31。
服务器:WAMP Server 3 Localhost设置
CodeIgniter 3.1.2

目录
www/CI/firstci/******

因此,当我导航到www/CI/firstci/

时,使用此目录结构会出现404错误
  

找不到404页面找不到您请求的页面。

如果我把我的CodeIgniter放在这个

的根上

目录
www/firstci/******

当我导航到www/firstci/时它会工作,它会引导我进入欢迎页面。

所以我的问题是如何修复此路由/路径问题?如果可能的话解释为什么CodeIgniter也会这样呢?

2 个答案:

答案 0 :(得分:2)

此处运行CI安装程序的基本步骤。

  1. 如评论中所述,请在config.php
  2. 中查看您的基本网址
  3. 关注此Installation instructions
  4. 以下是documentation
  5. 的路线帮助链接
  6. 您可以删除index.php文件。这是documentation link

答案 1 :(得分:1)

好的,我发现在我改变之后:

<强> routes.php文件

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

添加名为Pages.php的控制器文件

class Pages extends CI_Controller {
    public function view($page = 'home') {
        if (!file_exists(APPPATH.'views/pages/'.$page.'.php')){
            show_404();
        }

        $data['title'] = ucfirst($page);

        $this->load->view('templates/header');
        $this->load->view('pages/'.$page, $data);
        $this->load->view('templates/footer');
    }
}

还添加.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]

并将相关文件添加到查看文件夹,将其组织到此结构中:

templates/header
pages/'.$page, $data
templates/footer

它现在可以工作,并能够指导我到任何php页面