子文件夹 Codeigniter 中的自定义 404 页面
custom 404 page in subfolder Codeigniter
如何在子文件夹 Codeigniter 中创建自定义 404 页面?
我尝试了以下但无济于事:
http://tutsnare.com/create-custom-404-page-codeigniter/
有什么想法吗?谢谢
您的 route.php 配置中有 $route[‘404_override’] = ‘’;
。
你可以设置一个像 page_error.php 这样的控制器并保持 URL 这样你就不会有重定向了。
$route['404_override'] = 'page_error';
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class page_error extends CI_Controller
{
function index()
{
$this->output->set_status_header('404');
echo '404';
}
}
?>
检查here路由
只需查看您的 application/routes.php 文件 $route['404_override'] = '';
先把上面的$route['404_override'] = '';
改成$route['404_override'] = 'custom_error';
加油你application/controllers
创建名称为 custom_error 的新控制器
class Custom_error extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
echo "404 Rajaram Custom Message";
}
}
您需要更多有关路线的详细信息,请访问官方网站
https://ellislab.com/codeigniter/user-guide/general/routing.html
您是否在子文件夹中使用控制器?如果是这样,请通过创建 application/core/MY_Exceptions.php
来扩展异常 class
输入以下代码:
class MY_Exceptions extends CI_Exceptions
{
public function __construct()
{
parent::__construct();
}
/**
* 404 Page Not Found Handler
*
* @access private
* @param string
* @return string
*/
public function show_404($page = '', $log_error = TRUE)
{
/**
* Quick fix for 404 Override bug.
*
* index.php/non-existent-controller -----> override ok
* index.php/existent-controller/non-existent-method -----> override not ok
* index.php/existent-folder/non-existent-controller -----> override not ok
*/
$router =& load_class('Router', 'core');
if ( ! empty($router->routes['404_override']))
{
if ($log_error) log_message('error', '404 Page Not Found --> '. $page);
$config =& load_class('Config', 'core');
header('Location: '. $config->site_url($router->routes['404_override']));
exit;
}
/* End of fix */
$heading = "404 Page Not Found";
$message = "The page you requested was not found.";
// By default we log this, but allow a dev to skip it
if ($log_error)
{
log_message('error', '404 Page Not Found --> '.$page);
}
echo $this->show_error($heading, $message, 'error_404', 404);
exit;
}
}
如何在子文件夹 Codeigniter 中创建自定义 404 页面? 我尝试了以下但无济于事:
http://tutsnare.com/create-custom-404-page-codeigniter/
有什么想法吗?谢谢
您的 route.php 配置中有 $route[‘404_override’] = ‘’;
。
你可以设置一个像 page_error.php 这样的控制器并保持 URL 这样你就不会有重定向了。
$route['404_override'] = 'page_error';
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class page_error extends CI_Controller
{
function index()
{
$this->output->set_status_header('404');
echo '404';
}
}
?>
检查here路由
只需查看您的 application/routes.php 文件 $route['404_override'] = '';
先把上面的$route['404_override'] = '';
改成$route['404_override'] = 'custom_error';
加油你application/controllers
创建名称为 custom_error 的新控制器
class Custom_error extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
echo "404 Rajaram Custom Message";
}
}
您需要更多有关路线的详细信息,请访问官方网站
https://ellislab.com/codeigniter/user-guide/general/routing.html
您是否在子文件夹中使用控制器?如果是这样,请通过创建 application/core/MY_Exceptions.php
来扩展异常 class输入以下代码:
class MY_Exceptions extends CI_Exceptions
{
public function __construct()
{
parent::__construct();
}
/**
* 404 Page Not Found Handler
*
* @access private
* @param string
* @return string
*/
public function show_404($page = '', $log_error = TRUE)
{
/**
* Quick fix for 404 Override bug.
*
* index.php/non-existent-controller -----> override ok
* index.php/existent-controller/non-existent-method -----> override not ok
* index.php/existent-folder/non-existent-controller -----> override not ok
*/
$router =& load_class('Router', 'core');
if ( ! empty($router->routes['404_override']))
{
if ($log_error) log_message('error', '404 Page Not Found --> '. $page);
$config =& load_class('Config', 'core');
header('Location: '. $config->site_url($router->routes['404_override']));
exit;
}
/* End of fix */
$heading = "404 Page Not Found";
$message = "The page you requested was not found.";
// By default we log this, but allow a dev to skip it
if ($log_error)
{
log_message('error', '404 Page Not Found --> '.$page);
}
echo $this->show_error($heading, $message, 'error_404', 404);
exit;
}
}