0

我有以下文件:

路由.php

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

页面.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(在视图/页面/impressum.php 中)

<p>Hello</p>  

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

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

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

非常感谢您的帮助。谢谢。

4

1 回答 1

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);
    }

如果没有找到段,它将作为默认值首先通过

于 2013-04-05T16:03:22.303 回答