Вы делаете это правильно, хотя это может использовать некоторые уточнения. Похоже, это было решено, поэтому давайте поговорим о практических преимуществах приложения:
Наш старый веб-сайт с большой коллекцией многоязычных технических документов выполнял это в условном условии if else:
if (<no file found>){
die("NO FILE HERE");
}
Проблема (помимо бесполезного сообщения и плохого взаимодействия с пользователем) заключается в том, что мы обычно используем сканер ссылок (в нашем случае целостность) для проверки плохих ссылок и отсутствующих документов. Это означает, что мы получили совершенно правильный ответ 200 об ошибках, сообщающий, что там был файл. Целостность не знала, что мы ожидаем PDF, поэтому нам пришлось вручную добавить заголовок 404 с php. Если вы добавите свой код выше плашки (потому что после этого ничего не будет выполнено, а заголовок всегда должен быть перед любым визуализированным html), целостность (которая более или менее похожа на браузер) вернет 404, и мы будем точно знать, где искать пропущенные файлы. Есть более изящные способы сообщить пользователю, что есть ошибка, но, обслуживая ошибку 404, вы не только уведомляете браузеры и подобные браузеру программы об ошибке, но (я верю - исправьте меня, если я ошибаюсь), также записав эти ошибки в журналы вашего сервера, где вы можете легко grep для 404 с.
header('HTTP/1.0 404 Not Found');
die("NO FILE HERE");