2016-03-04 145 views
1

我正在嘗試設置我的codeigniter路由以爲管理面板創建身份驗證表單,但路由不起作用。我是CodeIgniter的初學者,我想我錯過了一些東西。CodeIgniter正確設置路由

在我的服務器我把文件夾內的笨fiels在我的根目錄,因此它可以這樣訪問:

/localhost/ci 

在我的config.php設置我基本URL和刪除索引頁面刪除的index.php:

$config['base_url'] = 'http://localhost/ci/'; 
$config['index_page'] = ''; 

而且我已編輯的.htaccess刪除像CodeIgniter的文檔的index.php說,所以它看起來是這樣的:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

現在,我的路由配置文件看起來像這樣。我把我的默認頁面和路由到我的驗證控制器:

$route['default_controller'] = 'auth'; 
$route['404_override'] = ''; 
$route['translate_uri_dashes'] = FALSE; 
$route['auth/login'] = "auth/login"; 

這是我的控制器:

類驗證擴展是CI_Controller {

function __construct() { 
    parent::__construct(); 
    // load libraries 
} 

function index() { 
    if (! $this->ion_auth->logged_in()) { 
     // redirect them to the dashboard page 
     redirect(base_url('auth/login'), 'refresh'); 
    } else { 
     // show the dashboard page 
     redirect(base_url('dashboard'), 'refresh'); 
    } 
} 

function login() { 
    $this->load->view('login'); 
} 

當我在Web瀏覽器http://localhost/ci/進入它將我重定向到http://localhost/ci/auth/login,但隨後出現404 Not Found錯誤。我錯過了什麼?在這一點上我有點困惑,謝謝。

+0

不要ü有意見文件夾內的login.php頁面? –

+0

我現在在html文件中有我的視圖,所以它看起來像「login.html」。那是不正確的? –

+0

可能是多數民衆贊成在。試試$ this-> load-> view('login.html');或將ur文件轉換爲php文件 –

回答

1

嘗試從改變你的.htaccess:

RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /ci/index.php/$1 [L]

+0

這工作正常,非常感謝!此外,我正在修改我的應用程序文件夾中的.htaccess。現在我在codeigniter根目錄下創建了一個.htaccess文件,現在它正在工作。 –