Как вызвать 404 ошибку php?
В помощь Вам http-response-code(404) клац
писать до  любого вывода
Ставьте error_reporting(-1); в начале кода и смотрите что не так.
Скорее всего перед header() был вывод данных.
А может вы что-то не так поняли? Ваш код всего-лишь объявляет, что данная страница - страница ошибки. Чтобы именно вызвать 404 попробуйте exit(header('Location: /error404/'));