重定向到PHP codeigniter中的自定义设计500错误页面

重定向到PHP codeigniter中的自定义设计500错误页面,php,.htaccess,codeigniter-3,Php,.htaccess,Codeigniter 3,我在电子商务网站上工作,在PHP中使用CodeIgniter框架。我有两个面板:1)前台和2)管理员 在页面加载或URL重定向过程中,如果发生“内部服务器错误”,我希望显示我的自定义设计页面500_Error_admin.php(管理员)和500_Error_front.php(前台用户界面) 让我澄清一下500_error_admin.php和500_error_front.php这两个页面都有不同的设计 我尝试了这个代码,但没有成功 .htaccess <IfModule mod_re

我在电子商务网站上工作,在PHP中使用CodeIgniter框架。我有两个面板:1)前台和2)管理员

在页面加载或URL重定向过程中,如果发生“内部服务器错误”,我希望显示我的自定义设计页面500_Error_admin.php(管理员)和500_Error_front.php(前台用户界面)

让我澄清一下500_error_admin.php和500_error_front.php这两个页面都有不同的设计

我尝试了这个代码,但没有成功

.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond $1 !^(index\.php|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>

<IfModule !mod_rewrite.c>
    #Directly give the path of page
    ErrorDocument 500 http://localhost/myproject/errors/500_admin.php
    #Also try with create controller and call method
    #ErrorDocument 500 http://localhost/myproject/admin/Error/show_500    
</IfModule>
这在我寻找的codeigniter中是可能的吗


请建议我,如何使用其他方法进行存档?

您可以使用owerride core Exption controller对管理端和客户端进行存档,请按照给定的步骤进行:

myproject/application/config/database.php

SET $db['default']['db_debug'] to FALSE instead of TRUE .

$db['default']['db_debug'] = FALSE;
步骤:1添加子类前缀:$config['subclass_prefix']='MY_';在配置文件(system/application/config/config.php)中

步骤:2在您的目录(系统/应用程序/库)中创建MY_Exceptions.php文件并添加以下代码

class MY_Exceptions extends CI_Exceptions{
    function MY_Exceptions(){
        parent::CI_Exceptions();
    }

    function show_404($page=''){    

        $this->config =& get_config();
        $base_url = $this->config['base_url'];

        $_SESSION['error_message'] = 'Error message';
        header("location: ".$base_url.'error.html');
        exit;
    }
}
就这样!不是您的错误页面将重定向到error.html页面。希望这对你有帮助


你好

您可以通过owerride core Exoption controller对管理端和客户端进行归档,请按照给定的步骤进行:

步骤:1添加子类前缀:$config['subclass_prefix']='MY_';在配置文件(system/application/config/config.php)中

步骤:2在您的目录(系统/应用程序/库)中创建MY_Exceptions.php文件并添加以下代码

class MY_Exceptions extends CI_Exceptions{
    function MY_Exceptions(){
        parent::CI_Exceptions();
    }

    function show_404($page=''){    

        $this->config =& get_config();
        $base_url = $this->config['base_url'];

        $_SESSION['error_message'] = 'Error message';
        header("location: ".$base_url.'error.html');
        exit;
    }
}
就这样!不是您的错误页面将重定向到error.html页面。希望这对你有帮助


你好

您可以自定义显示错误的页面。codeigniter 3已经有默认错误页面。如果要更改错误页面,请在application/config/config.php中打开config.php

在config.php内部查找错误视图目录路径

$config['error_views_path'] = APPPATH.'/views/errors/'; //path to you error view directory
然后切换到目录错误视图。内部视图有2个目录。[cli,html] 当您通过cmd或终端访问您的网站时,cli查看句柄。 当您通过浏览器访问您的网站时,可以使用html和视图句柄

在这种情况下,您需要更改html的设计

在html中有5个由ci定义的错误页面

-application/views/html/error_404.php // while page doesn't exist
-application/views/html/error_db.php // while error on db such as configuration and etc
-application/views/html/error_exception.php // error exception
-application/views/html/error_general.php // error general
-application/views/html/error_php.php
您可以将500_admin.php重命名为error_general.php。对于变量消息,您需要打开defaulterror_general.php并粘贴到新视图中 请记住将它们放在应用程序/视图/错误/html中。 因此,您的错误页面结构文件夹将如下所示

application/views/errors/html/error_general.php

有关详细说明,请参阅文档

,您可以自定义显示错误的页面。codeigniter 3已经有默认错误页面。如果要更改错误页面,请在application/config/config.php中打开config.php

在config.php内部查找错误视图目录路径

$config['error_views_path'] = APPPATH.'/views/errors/'; //path to you error view directory
然后切换到目录错误视图。内部视图有2个目录。[cli,html] 当您通过cmd或终端访问您的网站时,cli查看句柄。 当您通过浏览器访问您的网站时,可以使用html和视图句柄

在这种情况下,您需要更改html的设计

在html中有5个由ci定义的错误页面

-application/views/html/error_404.php // while page doesn't exist
-application/views/html/error_db.php // while error on db such as configuration and etc
-application/views/html/error_exception.php // error exception
-application/views/html/error_general.php // error general
-application/views/html/error_php.php
您可以将500_admin.php重命名为error_general.php。对于变量消息,您需要打开defaulterror_general.php并粘贴到新视图中 请记住将它们放在应用程序/视图/错误/html中。 因此,您的错误页面结构文件夹将如下所示

application/views/errors/html/error_general.php

有关详细说明,您可以查看文档

谢谢您的帮助。但是使用此功能,我们可以显示错误的自定义设计页。但是,当开发人员正在处理特定模块时,它也会显示自定义设计页,显示错误消息。它还会为管理员和前面板显示相同的错误页。我希望不同对于这两种情况,首先需要设置常量值。外汇定义(“应用程序类型”,“管理”);在构造函数中或使用$\u会话来放置当前状态。在视图中,使用if分隔它们。你的管理员设计你的前端设计详细信息如果查看文件的PHP语法,我建议你将它们拆分为不同的应用程序。单个应用程序运行得很好。但这不是正确的解决方案。**我必须在具有多面板的类似应用程序中执行此操作。**如何定义你是在管理员还是前端应用程序中?您是否使用和作为前端?您可以将错误页面放在不同的目录中,并使用$this->config->set_item('error_views_path',APPPATH./views/errors_admin/')在控制器中更改该页面;例如问题是如何定义你是在管理员还是在前端谢谢你的帮助。但是使用它我们可以显示错误的自定义设计页面。但是,当开发人员在特定模块上工作时,它也会显示自定义设计页面,显示错误消息。它也会为管理员和前面板显示相同的错误页面。我希望不同对于这两种情况,首先需要设置常量值。外汇定义(“应用程序类型”,“管理”);在构造函数中或使用$\u会话来放置当前状态。在视图中,使用if分隔它们。你的管理员设计你的前端设计详细信息如果查看文件的PHP语法,我建议你将它们拆分为不同的应用程序。单个应用程序运行得很好。但这不是正确的解决方案。**我必须在具有多面板的类似应用程序中执行此操作。**如何定义你是在管理员还是前端应用程序中?您是否使用和作为前端?您可以将错误页面放在不同的目录中,并使用$this->config->set_item('error_views_path',APPPATH./views/errors_admin/')在控制器中更改该页面;例如问题是如何定义你是在管理员还是在前台end@Nidhi试试这个。这可能对你有帮助@我试试这个。这可能对你有帮助!