【问题标题】:Codeigniter is not showing 404 error pageCodeigniter 未显示 404 错误页面
【发布时间】:2012-07-12 06:21:21
【问题描述】:

我正在使用 codeigniter 开发一个新网站,这是我第一次使用 codeigniter。我怀疑有些东西不能处理 404 错误,当我尝试加载不存在的控制器或现有控制器的错误功能时,我得到了标准的 webserver 404 错误,而不是 codeigniter 错误。

我没有触摸路由配置文件中的“404_override”选项。 正常吗?我希望(但也许我错了)在这些情况下会调用 show_404() 函数。

【问题讨论】:

    标签: php codeigniter http-status-code-404


    【解决方案1】:

    您的 .htaccess 文件是否正确设置?

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

    您必须设置一个 .htaccess 文件才能使自定义错误页面正常工作。查看官方documentation

    【讨论】:

      【解决方案2】:

      Codeigniter 应该显示它的 404 页面,除非您没有从 URI 中删除 index.php。在这种情况下,您可以尝试在不接触 CodeIgniter 的情况下打开另一个文件。查看here 了解如何使用.htaccess 删除index.php。

      更新:

      似乎有一个针对 ISS 的解决方案:ISAPI_Rewrite Lite(免费、精简版的商业产品)。我找到了here

      【讨论】:

      • 我没有删除 index.php,因为我在 IIS6 Web 服务器上并且没有办法这样做(我在几分钟前检查过)。在 Apache 服务器中,CI 错误消息已正确加载,而 IIS 服务器一直显示旧的丑陋 404 页面。
      • 用可能的解决方案编辑了我的答案。
      • 抱歉问题,重写引擎是否必须使 CodeIgniter 正常工作?我的意思是,如果我不需要在 url 中删除“index.php”段,我为什么要设置一个重写引擎?感谢您的帮助!
      • 所以你是在像这样明确地调用所有的控制器和方法? example.com/index.php/controller/method。如果是,那么让我们尝试一些不同的东西。 CodeIgniter 会自动记录任何 show_404() 调用。在 CI 中启用错误日志记录,然后检查日志文件以查看是否已记录。
      • 再次感谢您!我将在哪里部署站点(IIS 服务器)我无法为日志文件夹设置任何权限。无论如何,我认为日志不会有用,因为当我转到 example.com/index.php/controller/wrongMethod(IIS 服务器)时,CodeIgniter 没有“管理”此错误所述的错误:@ 987654323@
      猜你喜欢
      • 1970-01-01
      • 2016-10-25
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2017-07-02
      • 2017-03-09
      相关资源
      最近更新 更多