Codeigniter - 静态页面教程不起作用

时间:2013-04-05 14:52:28

标签: php codeigniter static routes

我有以下文件:

routes.php

$route['default_controller'] = "first";
$route['404_override'] = '';
$route['page/(:any)'] = 'page/view/$1';  

page.php

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

class Page extends CI_Controller {

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

    public function view($page = 'first') {

        if ( ! file_exists('application/views/pages/'.$page.'.php'))
            // Whoops, we don't have a page for that!
            show_404()
        }
        $this->load->view('pages/'.$page);
    }
}
?>  

impressum.php(在views / pages / impressum.php中)

<p>Hello</p>  

现在,当我加载http://xxxx.de/page/impressum时,它只显示一个空白页面。当我加载www.xxxx.de时,它会显示“第一个”页面/默认页面 当我尝试加载时,它甚至没有加载“第一”页面:www.xxx.de/page/

只是不知道我在哪里有错误/错误。

我的文件夹结构是:
http://d.pr/i/vYgw

非常感谢帮助。感谢。

1 个答案:

答案 0 :(得分:1)

当你在route.php文件中传递任何内容时,你需要在页面控制器的视图方法中检查$ page

$route['page/(:any)'] = 'page/view/$1';

www.xxx.de/page/会传递一个空字符串或变量来查看方法,你可以检查它

if(!strlen($page)){
  $page = "first";
}

使用uri类获取页面的更好方法

public function view() {
        $page = $this->uri->segment(2, 'first');

        if ( ! file_exists('application/views/pages/'.$page.'.php')){
            // Whoops, we don't have a page for that!
            show_404()
        }
        $this->load->view('pages/'.$page);
    }

如果找不到任何段,它将首先作为默认值传递