Другое решение, основанное на @ Kitet's.
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
header("Status: 404 Not Found");
$_SERVER['REDIRECT_STATUS'] = 404;
//If you don't know which web page is in use, use any page that doesn't exists
$handle = curl_init('http://'. $_SERVER["HTTP_HOST"] .'/404missing.html');
curl_exec($handle);
Если вы программируете веб-сайт, размещенный на сервере, которым вы не управляете, вы не будете знать, какой файл является «404missing.html». Однако вы все еще можете сделать это.
Таким образом, вы предоставили точно такой же результат, как обычная страница 404 на том же сервере. Наблюдатель не сможет различить существующую страницу PHP, возвращающую 404, и несуществующую страницу.