简体   繁体   English

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

[英]Clean page urls using URI Routing in Codeigniter

Here is my folder structure 这是我的文件夹结构

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

I want to access my about.php page by just going to base_url/about but i keep getting The requested URL localhost/appfolder/about was not found on this server. 我只想访问base_url / about即可访问我的about.php页面,但我一直在获取此服务器上未找到The requested URL localhost/appfolder/about

Here is how my Pages controller looks like 这是我的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');
    }
}

and my routes.php looks like this 和我的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;

What am I not doing right? 我做错了什么?

You need to replace / by DIRECTORY_SEPARATOR in file_exists function. 您需要在file_exists函数中用DIRECTORY_SEPARATOR替换/ It should work by now. 现在应该可以正常工作了。 And in routes.php default_controller should be pages , not pages/view . 在route.php中, default_controller应该是pages ,而不是pages/view

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM