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