La visualizzazione di errore 404 in CodeIgniter

Il CodeIgniter è molto semplice predefinito di errore 404 messaggio:

404 Page Not Found
The page you requested was not found.

Invece di usare questo messaggio di errore, totalmente pagina vuota, vorrei concludere questo messaggio tra la mia intestazione e piè di pagina di visualizzazione, in modo che il messaggio di errore hanno aspetto simile alle altre pagine.

Per tale scopo, ho creato una vista di errore? Per esempio:

my404_view.php

<? $this->load->view('header'); ?>
404 Page Not Found
The page you requested was not found.
<? $this->load->view('footer'); ?>

Ora, Come posso utilizzare questo my404_view.php come vista predefinita per visualizzare 404 messaggi invece di utilizzare il CodeIgniter messaggio di errore predefinito.

InformationsquelleAutor Roman | 2011-07-20

 

3 Replies
  1. 18

    Si dovrebbe cambiare il vostro routes.php. Per esempio:

    in application/config/routes.php

    $route['404_override'] = 'welcome/_404';

    in application/controllers/welcome.php

    function _404(){
        $this->load->view("my404_view");
    }

    E questo dovrebbe essere sufficiente nella versione corrente di CI.

    • Questo funziona solo quando il percorso non può essere trovato per una richiesta. Non funziona quando si chiama show_404()
    • sì, che è…
    • Grazie, è molto facile e utile
  2. 4

    Incluse le intestazioni e i piè di pagina predefinito della pagina di errore 404 sembra essere un problema comune per CodeIgniter utenti. Vorrei aggiungere questo link: Simon Emm commenti a http://www.simonemms.com/2011/05/06/codeigniters-404-override-problem/ perché egli descrive il problema in modo chiaro.
    Ho provato i suggerimenti a http://maestric.com/doc/php/codeigniter_404 e suonato in giro con Simon Emm idee, e di altri, ma non la loro attuazione. Io sono un po ‘ una novizia e il PHP, CodeIgniter, in modo che potrebbe essere a causa dell’ignoranza. Detto questo, è difficile garantire che si mette suggerito sottoclassi nei posti giusti e configurare, per esempio, routes.php correttamente. Dopo 3 giorni di provare i vari piuttosto complicato idee, si è verificato a me che ho potuto solo usare una istruzione di default pagina di errore 404. L’unica difficoltà è stata capire il percorso di passare per l’istruzione include.
    In /system/core/Exceptions.php linea 146, ho trovato il CodeIgniter agli sviluppatori di utilizzare APPPATH. Devi quindi solo per aggiungere il percorso per l’intestazione e il piè di pagine che si desidera includere.
    Il mio nuovo default pagina di errore 404 ora assomiglia a questo:

    <?php
    include APPPATH.'/views/templates/header.php';
    ?>
    <div id="container">
        <h1><?php echo $heading; ?></h1>
        <?php echo $message; ?>
    </div>
    <?php
    include APPPATH.'/views/templates/footer.php';
    ?>

    Questa sembra una soluzione più semplice per me che cercare di modificare le classi di base in CodeIgniter.

Lascia un commento