2017-10-16 127 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頁面