luti: header() 404-Meldung funktioniert nicht

Beitrag lesen

Hallo,

auf meiner Webseite wird die URL per RewriteRule in der .htaccess auf index.php umgeleitet. Als so ziemlich erstes prüfe ich in einer PHP-Funktion auf Syntax. Z.B. soll die eigegebene URL die From "www.domain.de/dir/page" haben. Sind im übergebenen String mehr als ein Slash enthalten, möchte ich eine 404-Fehlermeldung ausgeben. Aber die wird anscheind nicht ausgrführt (ein "header('Location: /fehler.html');") funkioniert an dieser Stelle problemlos. Folgende Code-Ausschnitte:

.htaccess:
ErrorDocument 404 /fehler.html
RewriteEngine on
Options FollowSymLinks
RewriteBase /
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9-_/]*)$ index.php?page=$1 [L]

aus index.php:
if (!empty($_GET['page'])) {
   $url = real_escape($_GET['page']);
   switch (substr_count($url , '/')) {
      case 0:
         $URL['page'] = $url;
         $URL['dir']  = '';
         break;
      case 1:
         $URL['page'] = substr($url, 0, stripos($url, '/'));
         $URL['dir']  = substr($url, stripos($url, '/')+1);
         break;
      default:
         #header('Location: /fehler.html');
         header("HTTP/1.0 404 Not Found");
         die();
         break;
   }
} else {
   $URL['page'] = 'index';
   $URL['dir']  = '';
}

Woran könnte das liegen?

Danke, luti