Убедитесь, что настроенная страница ошибки /404.html
имеет размер содержимого более 512 байт. Многие браузеры, такие как IE, Chrome и т. Д., Не отображают пользовательскую страницу, если длина содержимого пользовательской страницы 404 меньше 512.
UPDATE
Основываясь на ваших комментариях, я думаю, что происходит.
Если вы посмотрите на заголовки access.log или http в Firebug / HTTP Watch и т. Д. На этой пустой странице, вы увидите код возврата 404. Как только веб-сервер начинает обрабатывать страницу PHP, он уже прошел точку, в которой он будет обрабатывать обработку 404 самостоятельно, поскольку ваш php-файл фактически FOUND . Теперь, поскольку ваш php-код просто возвращает статус 404 без содержимого , отображается пустая страница.
Теперь, так как это правильное поведение Apache, и вы сами должны создать содержимое для страницы 404. Нечто подобное в приведенном выше php-коде будет хорошо, я думаю:
<?php
header("HTTP/1.0 404 Not Found");
exit("<h1>Not Found</h1>
The requested URL " . $_SERVER["REQUEST_URI"] . " was not found on this server.
<hr>");
?>