2010-02-22 24 views

Respuesta

16

hay otra forma que uso: anulando la clase principal de excepciones de Codeigniter. En primer lugar asegúrese de que su archivo de configuración (system/application/config/config.php) prefijo subclase es el siguiente $config['subclass_prefix'] = 'MY_';

a continuación, hacer un archivo llamado MY_Exceptions.php en system/application/libraries. A continuación, anule la función show_404() aquí de la siguiente manera.

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; 
    } 
} 

Ahora el controlador de error será su página de error, donde la página se redirigirá a error 404.

0

Para una solución simple, ir a su archivo "error_404.php" en "/ application/errores" directorio y poner este código al principio del archivo:

header("Location:".base_url()); 

Se va a redirigir a sus 404 página a la página de inicio.

2

Solución simple.

Cree su error personalizado o página no encontrada en la vista.

Cree un controlador para la página de error. Dentro de la función de índice cargue la vista de la página de error que ya creó en el paso anterior.

Ahora, vaya a su application/config/routes.php

que debe encontrar $route['404_override'] = '';

Es el '' significa su llamando a la página de error por defecto.

Ahora coloque el nombre de su controlador para la página de error.

Funcionará.

Supongamos que mi controlador para la página de error es 'error'. y la página de vista es 'notfound'.

Por lo tanto, el código de Error.php controlador será:

<?php 
class Error extends CI_Controller 
{ 
    function index() 
     { 
      $this->load->view('notfound'); 
     } 

} 

Ahora, reemplazado $route['404_override'] = '';-$route['404_override'] = 'error'; en application/config/routes.php.

+0

lo que es este tio ............ –

7

Custom 404 página es crear mediante el uso de la siguiente 3 pasos,

Paso 1: En primer lugar rutas abiertas.php en application/config y establecer un nombre de controlador personalizado,

$route['404_override'] = 'my404'; //my404 is class name. 

Paso 2: Crear un nuevo controlador y escribir el siguiente código en él. El código es muy fácil de entender. Así que no voy a explicar aquí,

<?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 
    } 
    } 
    ?> 

Paso 3: Crear un archivo de vista con el nombre de 'error_404.php' con su mensaje personalizado.

1

Bueno, quiere mostrar su página 404 personalizada cuando la página no se encuentra en su sitio web, simplemente reemplace su archivo personalizado en el archivo principal que se encuentra en application/error/error_404.php, simplemente reemplace su archivo aquí y está listo para seguir donde puede seguir otro método utilizando routes y controlador personalizado para usted personalizado 404 page. Pero la forma más rápida y sencilla es reemplazar el archivo principal con el archivo personalizado 404error page

0

Primero abra routes.php en la carpeta application/config y establezca un nombre de controlador personalizado.

$route['404_override'] = 'custom404'; //custom404 is class name. 

Crea un nuevo controlador y escribe el siguiente código en él. El código es muy fácil de entender. Entonces no voy a explicarlo aquí.

<?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 
} 
} 
?> 

Cree un archivo de vista con el nombre 'error_404.php' con su mensaje personalizado. Eso es todo lo que necesita hacer y tendrá su página 404 personalizada ahora.

solución
1

muy muy muy muy sencilla ... más
sólo editar /application/views/error_404.php con su página 404 personalizada :)

2

que no es necesario para crear cualquier controlador o modificar el código, en lugar de modificar un archivo de vista . Acabo de colocar el código HTML de 404 páginas en el archivo application/views/errors/html/error_404.php.

Si desea utilizar base_url() o cualquier otra función CodeIgniter, inicialice la clase CI_Controller como el siguiente código.

<?php 
    $ci = new CI_Controller(); 
    $ci =& get_instance(); 
    $ci->load->helper('url'); 
?> 
+0

Este fue en realidad el mejor para mí. No pude hacer funcionar el controlador 404, pero esto me permitió acceder a mis modelos y mis puntos de vista y hacer lo que necesitaba. Gracias. – dgig

+0

En CI 2.2 puede simplemente editar su página pero para 3.0 inicializamos ci_contoller como definió (y) –

Cuestiones relacionadas