[英]Codeigniter Routing Issues on AWS EC2
我一整天都在搜索stackoverflow來找到答案,我似乎找不到一個。
我在AWS EC2服務器上有我的Codeigniter應用程序。
這是我的routes.php:
$route['default_controller'] = 'pages/home';
$route['(:any)'] = 'pages/$1';
編輯這是我目前的routes.php:
$route['default_controller'] = 'pages/home';
$route['about'] = 'pages/about';
$route['contact'] = 'pages/contact';
$route['home'] = 'pages/home';
這是我的Pages.php:
class Pages extends CI_Controller {
function __construct(){
parent::__construct();
}
public function home(){
$this->view('home');
}
public function about(){
$this->view('about');
}
public function contact(){
$this->view('contact');
}
public function view($page)
{
if (!file_exists(APPPATH.'/views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
這是我的.htaccess:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
我的config.php:
$config['index_page'] = '';
問題
如果我轉到(my-url),它將使用我的default_controller。 如果我去(my-url)/ home或/ about或/ contact,我會收到404錯誤。 如果我去(my-url)/index.php/home或/ about或/ contact,我會得到default_controller。
我已仔細檢查是否已安裝並啟用了mod_rewrite。 我似乎無法弄清楚為什么我什么都沒得到。 我按照本教程進行了閱讀,並閱讀了許多stackoverflow問題和答案以嘗試解決它,但無濟於事。
請幫忙。
你不能像以下那樣使用路線:
$route['(:any)'] = 'pages/$1';
它不能滿足您所有功能的需要。
只是建議:
使用您的路線:
$route['about'] = 'pages/about';
$route['contact'] = 'pages/contact';
$route['view/(:any)'] = 'pages/view/$1';
......
如果您使用(:any)
作為第一個參數,則對於所有函數都不能正常工作,您需要針對不同URL的不同路由。
嘗試這個
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
注意當使用APPPATH常量時,路徑已經以'/'結尾
嘗試改變
if (!file_exists(APPPATH.'/views/pages/'.$page.'.php'))
至
if (!file_exists(APPPATH.'views/pages/'.$page.'.php'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.