Kind sirs, 我使用Codeigniter构建博客。我可能需要一种方法将404错误重定向到自定义404页面。就像Abduzeedo.com的404页面一样。是否有可能通过使用路线来控制?或者我应该使用控制器来引导它到另一个视图?非常感谢!如何使用Codeigniter在404自定义页面中重定向404错误?
回答
还有另一种方法,我使用:通过重写异常核心类的Codeigniter。首先确保您的配置文件(system/application/config/config.php)子类前缀如下 $config['subclass_prefix'] = 'MY_';
然后在system/application/libraries中创建一个名为MY_Exceptions.php的文件。然后如下覆盖函数show_404()函数。
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;
}
}
现在错误控制器将是您的错误页面,其中页面将被重定向为404错误。
对于一个简单的解决方案,去你的“error_404.php”文件中的“应用程序/错误/”目录,并把这个代码在文件的开头:
header("Location:".base_url());
它会重定向你的404页面到主页。
简单的解决方案。
在视图内创建自定义错误或页面未找到页面。
创建错误页面的控制器。在索引函数内载入您在上一步中创建的错误页面的视图。
现在,转到您的application/config/routes.php
你应该找到$route['404_override'] = '';
其''
意味着其调用默认的错误页面。
现在将您的控制器名称放入错误页面。
它会工作。
假设我的错误控制器页面是'error'
。并查看页面是'notfound'
。
所以,Error.php
控制器代码将是:
<?php
class Error extends CI_Controller
{
function index()
{
$this->load->view('notfound');
}
}
现在,我在 application/config/routes.php
取代$route['404_override'] = '';
到$route['404_override'] = 'error';
。
定制404页是通过使用下面的3步骤,
步骤1创建:首先打开路由。PHP在应用/配置和设置定制控制器名称,
$route['404_override'] = 'my404'; //my404 is class name.
步骤2:创建一个新的控制器和写在它下面的代码。代码很容易理解。所以我不打算在这里解释一下,
<?php
class my404 extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->output->set_status_header('404');
$data['content'] = 'error_404'; // View name
$this->load->view('index',$data);//loading in my template
}
}
?>
步骤3:用名称与您的自定义消息“error_404.php”创建一个视图文件。
好你要显示你的自定义404page当你的网站没有找到页面,您只需更换上位于application/error/error_404.php
核心文件自定义文件只需更换你的文件在这里,你是好去别的地方,你可以跟随其他通过使用routes
和自定义控制器为你定制404 page
方法。但是最短,最简单的方法是用定制404error page
文件替换核心文件中的应用程序/ config文件夹
首先打开routes.php文件和设置自定义控制器名称。
$route['404_override'] = 'custom404'; //custom404 is class name.
创建一个新的控制器,并在其中写上如下代码。代码很容易理解。所以我不打算在这里解释它。
<?php
class custom404 extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->output->set_status_header('404');
$data['content'] = 'error_404'; // View name
$this->load->view('index',$data);//loading in my template
}
}
?>
创建名称与您的自定义消息“error_404.php”的视图文件。 这就是你需要做的,现在将有自定义404网页。
非常非常非常非常多简单的解决方案......
与自定义的404页:)
你并不需要创建任何控制器或修改代码,而不是修改一个视图文件,只要编辑/application/views/error_404.php
。只需将您的404页面HTML放入application/views/errors/html/error_404.php
文件中即可。
如果你想使用BASE_URL()或任何其他的CodeIgniter函数,初始化是CI_Controller类,如下面的代码。
<?php
$ci = new CI_Controller();
$ci =& get_instance();
$ci->load->helper('url');
?>
这实际上是最适合我。我不能让404控制器开始工作,但这让我来访问我的模型,我的意见,做什么,我需要。谢谢。 – dgig
在CI 2.2你可以编辑自己的页面,但3.0我们初始化ci_contoller为您定义(Y) –
- 1. 重定向所有的404错误页面自定义404页CodeIgniter HMVC
- 2. 404错误被重定向到主页而不是自定义404页面
- 3. 404错误页面重定向
- 4. 更改自定义404错误页面
- 5. 自定义错误页面404
- 6. 没有自定义404错误页面
- 7. Kohana 2自定义404错误页面
- 8. 自定义404错误页面
- 9. 404自定义重定向
- 10. 如何使用codeigniter从视图调用自定义404页面?
- 11. 如何在.txt文件中重定向到错误404页面
- 12. 如何在cake 3中创建自定义404错误页面?
- 13. 404错误页面使用htaccess重定向到主页
- 14. 使用.htaccess重定向到404页面
- 15. 重定向到DjangoCMS中的自定义404 html页面
- 16. 重定向到主目录中的自定义404页面
- 17. Kohana 404自定义页面
- 18. Cloud9自定义404页面
- 19. Nginx - 自定义404页面
- 20. Webapp2重定向404错误
- 21. .htaccess重定向404错误
- 22. 404页,而在笨页面重定向
- 23. 如何捕获错误页面(如404)和重定向到一个自定义页面在PHP?
- 24. 从自定义帖子类型页面重定向到错误404
- 25. 扔404并重定向到春季的自定义错误页面
- 26. 如何在ASP.NET中显示自定义404页面而不重定向?
- 27. 如何重定向404错误html页面春季
- 28. OctoberCMS 404页面自定义URL用于我的404页面
- 29. Azure重定向到自定义404页面
- 30. 显示404自定义页面而不重定向到它
这是什么家伙............ –