2015-04-02 49 views
2

我正在使用HMVC運行CI 3.0。在我本地的XAMPP上,一切正常,但在我的(linux)活服務器上,我從CI獲得了404錯誤(找不到頁面)。活服務器上的Codeigniter 404

我有幾個小時,並做了翻譯我發現解決這個問題..沒有成功!

這裏是我現在所擁有的:

$route['default_controller'] = 'default'; 

的htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_URI} ^system.* 
RewriteRule ^(.*)$ /index.php?/$1 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?/$1 [L] 
</IfModule> 

我的結構:

-application

--modules

---默認

----控制器

-----如default.php

我的控制器如default.php:

class Default extends MY_Controller { 

public function __construct() 
{ 
    parent::__construct(); 
} 

public function index() 
{ 
    .... 
} 
} 

錯誤在CI錯誤日誌中:

錯誤 - 2015-04-02 13:15:56 - > 404頁面未找到:../modules/default/controllers//index

..仍然是404。這是什麼問題? ?

+0

確保您的'Controller'文件名以大寫字母開頭。 'Index.php' – Kamran 2015-04-02 13:29:05

+0

控制器需要命名爲Default.php而不是index.php如果我說得對。還有一個足夠的路徑,所以檢查它是如何調用的。索引(索引)也是CodeIgniter中的保留名稱,因此您想考慮將其更改爲其他內容。 – Tpojka 2015-04-02 14:35:00

+0

@Tpojka,['「index」'只保留用作**控制器**名稱](http://www.codeigniter.com/userguide3/general/reserved_names.html),但是,沒有任何東西使用''index''作爲**函數**名稱時出錯。 [即使是官方教程中的新聞控制器也包含一個名爲'「index」'](http://www.codeigniter.com/userguide3/tutorial/news_section.html)的函數。 – Sparky 2015-04-02 14:58:49

回答

0

檢查所有控制器和庫的啓動大寫即歡迎。在你的核心/ MY_Controller得到您擴展它MX_Controller

核心/ MY_Controller

class MY_Controller extends MX_Controller {}

配置在HMVC/routes.php文件

$route['default_controller'] = "default/default/index";

路線需要模塊名/控制器名/函數

而且還當你從那裏下載HMVC下載確保你去到分支機構和下載正確的版本爲您笨「HMVC默認下載」是笨2

雖然我認爲現在只有codeigniter hmvc 3可供下載。 https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/downloads

我在下面的主目錄中也使用htaccess。你也可以從這裏下載更多的htaccess文件。 http://www.insiderclub.org/在下載部分。

Options +FollowSymLinks 
Options -Indexes 

<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))"> 
    Order deny,allow 
    Deny from all 
</FilesMatch> 

DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
+0

非常感謝你,但看看我的答案... – MarkusHH 2015-04-02 14:39:15

0

Got it!

對於使用HMVC進行測試/開發,我將原始文件夾應用程序/控制器重命名爲application/controllers_off。 我控制器位於:

應用程序/模塊/默認/控制器/

所以,我想我可以重命名或刪除原來的文件夾

的文件夾應用程序/控制器是空的,但它似乎HMVC擴展需要這個文件夾。所以重新命名爲「控制器」解決了我的問題。

難以置信!

+0

永遠不要刪除的東西,如果你'只是認爲你可以'直到你不是100%明確的後果。在打開機器後可以記住相關的任何事情。 – Tpojka 2015-04-02 15:02:46

相關問題