【问题标题】:Clean page urls using URI Routing in Codeigniter在 Codeigniter 中使用 URI 路由清理页面 url
【发布时间】:2018-10-28 08:46:14
【问题描述】:

这是我的文件夹结构

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;

我做错了什么?

【问题讨论】:

标签: php routing codeigniter-3


【解决方案1】:

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

【讨论】:

  • if(!file_exists(APPPATH.'views'.DIRECTORY_SEPARATOR.'pages'.DIRECTORY_SEPARATOR.''.$page.'.php')){ show_404(); 不工作
  • localhost/appfolder/index.php/about 怎么样?如果你想访问没有足够的 index.php,你需要在 .htaccess 中做一些更改
猜你喜欢
  • 1970-01-01
  • 2012-11-26
  • 2013-06-14
  • 2013-11-11
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
相关资源
最近更新 更多