【问题标题】:CodeIgniter initial setup 404CodeIgniter 初始设置 404
【发布时间】:2017-10-16 09:41:44
【问题描述】:

我最近刚开始学习 CodeIgniter 并尝试在这种结构中设置我的项目:

规格
Apache/2.4.27 (Win64) PHP/5.6.31.
服务器:WAMP Server 3 本地主机设置
CodeIgniter 3.1.2

目录
www/CI/firstci/******

所以当我导航到www/CI/firstci/时,使用这个目录结构会给我一个404错误

404 Page Not Found 找不到您请求的页面。

如果我像这样将我的 CodeIgniter 放在根目录的更高位置

目录
www/firstci/******

当我导航到 www/firstci/ 时它会起作用,它会将我引导到欢迎页面。

所以我的问题是如何解决这个路由/路径问题?如果可能的话,解释一下为什么 CodeIgniter 也会这样?

【问题讨论】:

  • CI 是这里的文件夹吗?
  • 让你的项目直接在www下,然后像这样访问:www/firstci/******这是正确的方法。保留一个额外的文件夹CI 并将firstci 放入其中没有任何好处。
  • 检查配置中的基本 URL。与全新安装无关
  • @HimanshuUpadhyay 没有这样的事情。你可以在任何你想要的地方加载你的项目
  • @AbdullaNilam,你是对的,但这样做没有任何好处,所以我建议他。

标签: php codeigniter routing


【解决方案1】:

这里吃了一些基本的步骤来运行 CI 设置。

  1. 正如评论中提到的,请检查您在config.php 中的基本 URL
  2. 关注此Installation instructions
  3. 这里是documentation的路由帮助链接
  4. 您可以删除index.php 文件。这是documentation link

【讨论】:

    【解决方案2】:

    好的,我发现在我改变之后:

    routes.php

    $route['default_controller'] = 'welcome';
    $route['404_override'] = '';
    $route['translate_uri_dashes'] = FALSE;
    

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

    添加一个名为 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');
        }
    }
    

    还添加了 .htaccess

    RewriteEngine on
    RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
    RewriteCond %(REQUEST_FILENAME) !-f
    RewriteCond %(REQUEST_FILENAME) !-d
    RewriteRule ^(.*)$ ./index.php/$1 [L]
    

    并添加相关文件以查看将其组织到此结构的文件夹:

    templates/header
    pages/'.$page, $data
    templates/footer
    

    它现在可以工作并且能够将我引导到任何 php 页面

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 2013-10-12
      • 1970-01-01
      • 2015-02-27
      • 2016-02-15
      • 2020-05-01
      • 2019-01-23
      • 2011-04-03
      • 2012-11-05
      相关资源
      最近更新 更多