2012-07-12 124 views
0

我正在開發一個使用codeigniter的新網站,這是我的第一個codeigniter體驗。我懷疑有些東西與404錯誤無關,當我嘗試加載一個不存在的控制器或現有控制器的功能錯誤時,我找回了標準的Web服務器404錯誤,而不是codeigniter錯誤。Codeigniter不顯示404錯誤頁面

我沒有碰到路由配置文件中的「404_override」選項。 這是正常的嗎?我期望(但也許我錯了),在這些情況下show_404()函數被調用。

回答

1

您的.htaccess文件是否設置正確?

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

您必須設置.htaccess文件才能使自定義錯誤頁面正常工作。結帳官方documentation

0

Codeigniter應該顯示它的404頁面,除非你沒有從URI中刪除index.php。在這種情況下,您可以嘗試打開另一個文件而不用觸摸CodeIgniter。看看here看看如何使用.htaccess刪除index.php。

更新:

似乎是ISS的解決方案:下ISAPI_Rewrite精簡版(免費,商業產品的精簡版的版本)。我發現它here

+0

我沒有刪除index.php,因爲我在IIS6的Web服務器上,沒有辦法做到這一點(我幾分鐘前檢查)。在Apache服務器上正確加載CI錯誤消息,而IIS服務器不斷顯示舊的醜陋404頁面。 – rigobot 2012-07-12 15:30:14

+0

用可能的解決方案編輯我的答案。 – Robert 2012-07-12 15:57:26

+0

對不起,這個重寫引擎是否必須使CodeIgniter正常工作?我的意思是,如果我不需要在url中刪除「index.php」段,爲什麼我應該設置一個重寫引擎? 謝謝你的幫助! – rigobot 2012-07-12 19:13:27