2017-10-16 144 views
2

我最近刚开始学习CodeIgniter的,在这种结构试图建立我的项目:笨初始设置404

规格
的Apache/2.4.27(Win64中)PHP/31年6月5日。
服务器:WAMP Server 3的本地主机设置
笨3.1.2

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

因此,使用该目录结构会给我一个404错误,当我浏览到www/CI/firstci/

404未找到页面找不到您请求的页面。

,如果我把我的笨越往上根这样

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

,当我浏览到www/firstci/,它会指引我到一个欢迎页面,它将正常工作。

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

+0

'CI'是文件夹? –

+0

保持您的项目直接在www下,然后像这样访问:'www/firstci/******'这是正确的方法。保留一个额外的文件夹'CI'并将'firstci'放入其中是没有好处的。 –

+0

在配置中检查您的基本URL。没有什么新鲜的安装 –

回答

1

好吧,我已经发现了之后,我改变了:

routes.php文件

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

TO

$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页面