2012-07-12 122 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