使用Codeigniter中的URI路由清理页面URL

时间:2018-10-28 08:46:14

标签: php routing codeigniter-3

这是我的文件夹结构

application
    |
    controllers
              |
              Pages.php
    |
    views
        |
        pages
             about.php
             home.php

我只想通过访问 base_url / about 来访问我的about.php页面,但是我一直在此服务器上找不到The requested URL localhost/appfolder/about

这是我的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');
    }
}

我的routes.php看起来像这样

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


$route['default_controller'] = 'pages/view';

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

我在做什么不对?

1 个答案:

答案 0 :(得分:0)

您需要在/函数中将DIRECTORY_SEPARATOR替换为file_exists。现在应该可以正常工作了。 并且在routes.php中,default_controller应该是pages,而不是pages/view