Bonsoir,
Je suis en train de dev un cms en php, j'utilise une architecture mvc et un systeme de routage. Depuis quelques jours j'essais de creer une page 404 perso sans succes

La RewriteRule fonctionne et le routeur affiche bien une erreur 404 lorsque ma requete GET n'existe pas, mais lorsque j'entre une URL (une page plus precisement) qui n'existe pas, la page index n'est pas appelee.

Voici le pseudo-code du router:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
if (file_exists(target)) {
    if (is_readable(target)) {
 
        include target_file
 
        if (class_exists(target_class)) {
 
            new target()
 
        } else {
            die('target controller class does not exist.');
        }
    } else {
        die('target controller file not readable.');
    }
}else{
    include 404
    new 404()
}
La vue de la page 404:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
    header('Content-type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>404</title>
    </head>
    <body>
        <h1>404:</h1>
        <p>L&rsquo;URL demand&eacute;e <strong><?php echo($data['request']); ?></strong> est introuvable sur ce serveur.</p>
    </body>
</html>
Le .htaccess:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^([_a-z0-9]*)$ index.php?$1 [L]
 
ErrorDocument 404 /index.php?error404
Si je remplace par ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ErrorDocument 404 http://localhost/xml_template_mvc/error404
tout fonctionne, sauf que bien sur appache me redirige avec un code 302 (comme c'est ecrit dans la doc) et ce n'est evidement pas ce que je cherche!

P.S : Je m'excuse pour les accents je suis sur un qwerty.